Я работаю над парсером, который открывает файл, читает его и печатает данные в другом файле.
Входной файл определяется из sys.argv [1] для обработки открытия командной строки и перетаскивания (в окнах). Тем не менее, при перетаскивании файла, это дает мне
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")