2016-02-10 2 views
0

У меня есть очень простой маленький питон скрипт, чтобы показать мою проблему:
кодоблок ниже полный сценарий, всего 5 строк, хранится в файле с именем t.pyIOError при попытке добавить в файл в Cygwin

with open("file.txt", "w") as myfile: // Open file.txt in write mode 
    myfile.write("a b c ")    // Write “a b c “ to the file 

with open("file.txt", "a") as myfile: // Open the file.txt in append mode 
    myfile.write("d e f")    // Append “d e f” to the end of the file 

Сценарий отлично работает, когда я его запускаю из командной строки Windows. Затем я получаю файл file.txt, содержащий «a b c d e f», как я этого хочу.

Однако, когда я выполняю тот же скрипт с использованием python в Cygwin, я получаю ошибку при попытке записать 'd e f' в файл. (IOError: [Errno 22] Неверный аргумент) Я тогда в конечном итоге с file.txt, содержащий только "ABC"

Python версии: 2.7.x Cygwin версия: 1.7.20

ли кто-то есть идея, что может быть причиной?


Вот полный трассировки стека:

$ python t.py 
Traceback (most recent call last): 
    File "t.py", line 5, in <module> 
     myfile.write('d e f') 
IOError: [Errno 22] Invalid argument 


Вот точный (непосредственно копировать & пасту из p.py):

with open("simtest_test_report.csv", "w") as myfile: 
    myfile.write("a b c ") 

with open("simtest_test_report.csv", "a") as myfile: 
    myfile.write('d e f') 
+1

Можете ли вы добавить полную трассировку стека, пожалуйста? –

+0

Да, добавлена ​​трассировка стека. – Weldeborn

+0

Основываясь на том, что вы вставили, я не вижу проблемы здесь. –

ответ

0

Это, вероятно, пространство у вас есть второе имя файла:

with open("file.txt ", "a") as myfile: 
    myfile.write("d e f") 

Посмотрите, как там находится конечное пространство, которое у вас не было с предыдущим именем файла.

+0

Ох. Это было случайно добавлено мной во время создания этого сообщения. У сценария нет пробелов. Я изменил свой пост относительно этого. спасибо – Weldeborn

Смежные вопросы