在python中解析带有空格的命令行参数

2024-05-17 11:35:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在调用ant的脚本。我从调用者那里得到一个字符串,但是python奇怪地把它当作两个单独的字符串,我有一个脚本,它在windows中读取一个带有路径的文件名。文件夹结构之间可能有空格,也可能没有空格

下面是一个例子

test.py D:/test/File Name

我知道这可以用optparse来完成。有没有办法把参数读作一个参数 就像我想在sys.argv[index]中得到它一样(作为一个字符串)。我已经厌倦了用“和”作前缀,但没有成功。


Tags: 字符串pytest路径脚本文件夹参数文件名
3条回答

根据MS: https://msdn.microsoft.com/en-us/library/windows/desktop/17w5ykft(v=vs.85).aspx

反斜杠按字面意思解释,除非它们紧跟在双引号之前。

如果Windows上的Python使用以下方法,我会很高兴: https://msdn.microsoft.com/en-us/library/windows/desktop/bb776391(v=vs.85).aspx

分析命令行以创建sys.argv。 从理论上讲,它应该这样做。

传递用引号括起来的文件夹名称:

test.py "D:\test\File Name"

sys.argv[1]将包含文件夹路径,包括空格。

如果由于某种原因,无法引用文件夹名,则需要使用ctypes模块并使用Win32 API的GetCommandLine函数。这是一张functional example

将空格作为参数传递的约定是通过转义空格。

test.py D:/test/File\ Name

这样您就可以访问python脚本中的“D:/test/File Name”。

相关问题 更多 >