我有一个非常简单的小蟒蛇脚本来演示我的问题:
下面的代码块是完整的脚本,共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')
答案 0 :(得分:0)
这可能是您在第二个文件名上获得的空间:
with open("file.txt ", "a") as myfile:
myfile.write("d e f")
查看那里有一个尾随空格 - 你没有使用以前的文件名。