将参数传递给python程序

时间:2017-11-01 16:46:00

标签: python windows shell command-line-arguments argv

我有一个python程序,它接收一个文件路径作为参数。

问题是,如果文件路径具有以下字符:"%cd",则它将替换"%cd"使用当前目录。

例如:

python program.py  "C:\%af%32%cd%7f.htm"

sys.argv(在program.py中)显示了这个:

['program.py', 'C:\\%af%32C:\\%7f.htm']

为什么会发生这种情况以及如何解决?

修改

问题在于,如果我把"%cd"在命令行中,然后在python中,我获得了当前目录字符串的命令行,而不是"%cd"字符

1 个答案:

答案 0 :(得分:2)

使用%%转义%仅适用于批处理文件,而不适用于命令行。 可以使用双引号转义%

例如: python untitled0.py "C:\\"%"af"%"32"%"cd"%"7f.htm"

['untitled0.py', 'C:\"%af%32%cd%7f.htm']

但这有点乏味 - 你必须小心\逃避任何"

另一个替代方法是用其他符号替换%,然后在python程序中将其更改回来?