如何正确传递要使用 python -c 执行的文字字符串 python 代码

发布于 2024-10-18 06:54:55 字数 786 浏览 4 评论 0原文

我需要一些帮助来弄清楚如何从 python -c 执行此 python 代码 我在格式化 python 时遇到问题,以便它将在 cmd 中为另一个应用程序执行 我知道可能还有其他方法可以完成我正在做的事情,但我受到使用 cmd python -c 最终执行的限制,所以请记住这一点。

所以我有一些 python 代码,

import os
import shutil

myPath =r"C:\dingdongz"
for root, dirs, files in os.walk(myPath):
    for file in files:
        os.remove(os.path(root, file))
    for dir in dirs:
        shutil.rmtree(os.path.join(root,dir))

但我试图使用以下方法来执行它, python -c "p​​rint 'hotdogs'"

所以这就是我所拥有的,但没有工作

cmdline = "\" import os, shutil \n for root, dirs, files in os.walk("+myPath+"):\n \t for file in files: \n \t \t os.remove(os.path.join(root, file)) \n \t for dir in dirs: \n \t\t shutil.rmtree(os.path.join(root, dir))" 

Windows CMD
python -c "+ cmdline +'"'

I need some help figuring out how to execute this python code from python -c
I am have trouble formatting python so that it will execute for another app in cmd
I understand there maybe other ways to do what I am doing but I am limited by the final execution using cmd python -c so please keep this in mind.

So I have some python code ie,

import os
import shutil

myPath =r"C:\dingdongz"
for root, dirs, files in os.walk(myPath):
    for file in files:
        os.remove(os.path(root, file))
    for dir in dirs:
        shutil.rmtree(os.path.join(root,dir))

But I am trying to excute it using the following method, python -c "print 'hotdogs'"

So this what i have but no worky

cmdline = "\" import os, shutil \n for root, dirs, files in os.walk("+myPath+"):\n \t for file in files: \n \t \t os.remove(os.path.join(root, file)) \n \t for dir in dirs: \n \t\t shutil.rmtree(os.path.join(root, dir))" 

Windows CMD
python -c "+ cmdline +'"'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

著墨染雨君画夕 2024-10-25 06:54:55

如果你真的需要做一个单行黑客(这是完全不建议或宽恕)那么你可以这样做

python -c "import os; import shutil; for root, dirs, files in os.walk('+myPath+'): for file in files: os.remove(os.path.join(root, file)); for dir in dirs: shutil.rmtree(os.path.join(root, dir))"

但是你真正应该做的是使它成为一个位于你的Windows路径内的脚本,然后你可以做

python myfancyscript.py

这似乎是好多了,对吧?

If you really really need to do a one line hack (this is totally not suggested or condoned) then you can do this

python -c "import os; import shutil; for root, dirs, files in os.walk('+myPath+'): for file in files: os.remove(os.path.join(root, file)); for dir in dirs: shutil.rmtree(os.path.join(root, dir))"

But what you should really do is make this a script that is inside your windows path, then you can do

python myfancyscript.py

Which seems a lot nicer right?

月下伊人醉 2024-10-25 06:54:55

使用 python -c 的 Powershell 指南

  • 将整个代码部分括在 " 中 - 以便您计算其中的 PowerShell 特殊字符(对于换行符和制表符),
  • 使用 ' 作为代码中的引号部分
  • 使用 `n 作为行分隔符
  • 使用 `t 作为 python 缩进所必需的制表符

示例:minify json oneliner

  • ,将 foo.json 作为输入并将其缩小版本打印到控制台,
python -c "import json`nimport sys`nwith open(sys.argv[1], 'r') as f:`n`tprint(json.dumps(json.load(f), separators=(',',':')))" foo.json

Powershell guidelines for using python -c

  • enclose the whole code section in " - so that you evaluate PowerShell special characters within (for newlines and tabs)
  • use ' for quotes within the code section
  • use `n as line separators
  • use `t as tab character essential for python indentation

Example: minify json oneliner

  • that takes foo.json as an input and prints it minified version to the console
python -c "import json`nimport sys`nwith open(sys.argv[1], 'r') as f:`n`tprint(json.dumps(json.load(f), separators=(',',':')))" foo.json
谈情不如逗狗 2024-10-25 06:54:55

对于 CMD,请将整个代码部分括在双引号“内。否则它将无法工作(无输出)。

For CMD, enclose the whole code section within double quotes ". Else it will simply not work (no output).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文