我在这里研究一个解析器,它打开一个文件,读取它并在另一个文件中打印数据。
输入文件由 sys.argv[1] 确定以处理命令行打开和拖放(在 Windows 中)。但是,当拖放文件时,它给了我
ioerror 13: Permission denied
查看 sys.argv 包含的内容,我执行了以下操作(来自 cmd.exe)以使其包含相同的内容:
C:\>python C:\test\iotest.py C:\test\iotestin.txt
它失败了。但是,以下工作
C:\>cd test
C:\test>python iotest.py iotestin.txt
对我来说,以上将/应该几乎相同。
- 为什么会出现权限错误?
- 如何使 python 能够处理完全指定的路径?(如果这就是问题所在。)
- 如何启用拖放功能?
哦,如果不清楚,我将 input/txt 文件拖到 python 文件中,而不是相反。作为一名编码员,我总是更喜欢 CLI,但这个软件的未来用户不喜欢,因此我需要让它工作。
虽然非常简单,但这里有一些代码可以重现该问题:
import sys
print sys.argv
raw_input("")
try:
print "opening",sys.argv[1]
infile = open(sys.argv[1])
outfile = open("out.txt", "w")
raw_input("")
except IndexError:
print "usage:",sys.argv[0].split("\\")[-1],"FILE"
raw_input("")
exit()
except IOError as (errno, strerror):
print "I/O error({0}): {1}".format(errno, strerror)
raw_input("")
exit()
raw_input("done")