我有一个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"字符
答案 0 :(得分:2)
使用%%转义%仅适用于批处理文件,而不适用于命令行。 可以使用双引号转义%
例如:
python untitled0.py "C:\\"%"af"%"32"%"cd"%"7f.htm"
['untitled0.py', 'C:\"%af%32%cd%7f.htm']
但这有点乏味 - 你必须小心\
逃避任何"
。
另一个替代方法是用其他符号替换%,然后在python程序中将其更改回来?