我知道Windows如何使用反斜杠作为文件名等,而Unix使用正向。但是,我从不在我在代码中创建的字符串中使用反斜杠。但是:
当Windows资源管理器将文件“删除”到python脚本上时,它传递的字符串包含反斜杠。这些转换为sys.argv列表中字符串中的转义序列,然后我无法在那之后更改它们(打开建议)
有什么方法可以让我以某种方式让Windows传递一个文字字符串或...我能解决这个问题吗?
我喜欢我的脚本可以放弃,但唯一阻止我的是窗口反斜杠。
编辑:
对不起大家,错误实际上并不是传递字符串 - 正如有人在下面指出的那样,但这仍然可以帮助其他人:
确保使用绝对路径名,因为当Windows shell不会像在命令行中那样运行当前目录中的脚本。当尝试写入非绝对的单部分路径名时,这会导致权限被拒绝错误。
答案 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上)。你能试试这个代码吗?