开发者

how to properly pass literal strings python code to be excuted using python -c

开发者 https://www.devze.com 2023-02-11 04:57 出处:网络
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 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 t开发者_运维百科o 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 +'"'


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?


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
  • adopted from Minifying JSON with Python · Jamie Tanna
0

精彩评论

暂无评论...
验证码 换一张
取 消