将文件拖放到Windows中的python脚本中 - 避免Windows在参数中使用反斜杠

时间:2012-02-13 19:19:46

标签: python windows path operating-system backslash

我知道Windows如何使用反斜杠作为文件名等,而Unix使用正向。但是,我从不在我在代码中创建的字符串中使用反斜杠。但是:

当Windows资源管理器将文件“删除”到python脚本上时,它传递的字符串包含反斜杠。这些转换为sys.argv列表中字符串中的转义序列,然后我无法在那之后更改它们(打开建议)

有什么方法可以让我以某种方式让Windows传递一个文字字符串或...我能解决这个问题吗?

我喜欢我的脚本可以放弃,但唯一阻止我的是窗口反斜杠。

编辑:

对不起大家,错误实际上并不是传递字符串 - 正如有人在下面指出的那样,但这仍然可以帮助其他人:

确保使用绝对路径名,因为当Windows shell不会像在命令行中那样运行当前目录中的脚本。当尝试写入非绝对的单部分路径名时,这会导致权限被拒绝错误。

1 个答案:

答案 0 :(得分:0)

无法重现。这样:

import os, sys
print sys.argv
print map(os.path.exists, sys.argv)
raw_input()

给了我这个:

['D:\\workspaces\\generic\\SO_Python\\9266551.py', 'D:\\workspaces\\generic\\SO_Python\\9254991.py']
[True, True]
将第二个文件放到第一个文件后

。 Python 2.7.2(在Windows上)。你能试试这个代码吗?