尝试附加到Cygwin中的文件时出现IOError

时间:2016-02-10 11:22:06

标签: python cygwin append ioerror

我有一个非常简单的小蟒蛇脚本来演示我的问题:
下面的代码块是完整的脚本,共5行,存储在名为t.py的文件中

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命令提示符执行它时,脚本工作正常。然后,我最终得到了包含“a b c d e f”的file.txt,正如我想要的那样。

然而,当我在Cygwin中使用python执行相同的脚本时,我在尝试将'd e f'写入文件时遇到错误。 (IOError:[Errno 22]无效的参数)然后我最终得到只包含“a b c”的file.txt

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 :(得分:0)

这可能是您在第二个文件名上获得的空间:

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

查看那里有一个尾随空格 - 你没有使用以前的文件名。