【发布时间】:2018-04-14 01:23:46
【问题描述】:
我有一个接收文件路径作为参数的 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”字符的命令行
【问题讨论】:
-
这不是 python 问题,而是 Windows CMD 问题。 Windows CMD 在将 %cd% 传递给 python 之前替换它。
-
@Ben Maybe.. 同时我没有发现 "%cd" 在 windows CMD 中有效.. 但我发现 "%cd" 是 ipython 中的一个特殊命令
-
在类 Unix 系统上,您可以通过用单引号(而不是双引号)引用 arg 来停止类似的参数扩展。这在 Windows 上不起作用吗?
-
在命令行中使用 %% 见stackoverflow.com/questions/2058944/…
-
@MartinBeckett 在每个“%”字符之前添加另一个 % 无效:(
标签: python windows shell command-line-arguments argv