我已经在这里待了几天了。我想做的是:
我的代码片段:
if mode == 'a':
print buffer
print fn
f = open(fn,mode)
f.write(buffer)
#f.write("\nfoo,bar")
f.close()
print f.closed
os.rename(".\\out\\" + fn, ".\\out\\" + fn[0:17]+tdy[0:4]+ "_" + tdy[5:7] + "_" + tdy[8:10] + ".csv")
附加信息:
mode确实=='a'它到达循环。
buffer
打印。打印为多行csv数据的字符串,如:
foo, bar, foo, bar
foo, bar, foo, bar
foo, bar, foo, bar
fn
是我试图打开并打印的正确文件名。
f.closed
返回True
os.rename
工作并重命名文件。当我打开它时,缓冲区还没有被追加。
我尝试在close之前添加一个flush()
。
我试过没有改名。
我试图附加一个硬编码的字符串。
有什么想法吗?在
您正在处理两个文件。在
您打开
fn
在current目录中写入,但是您重命名了文件'.\out\' + fn
。在打开
fn
时,请确保使用了正确的目录:请注意,在Windows上,您也可以使用
^{pr2}$/
分隔符,这更容易处理,因为您不必使用原始字符串或转义斜杠。另外,最好使用os.path.join()
来处理目录和文件:然后在整个函数中使用
filename
。在相关问题 更多 >
编程相关推荐