WriteFile1()代码片段:
try:
iOutputFile = open(IFilePath, "a")
if iOutputFile == 0:
return
csvInfoWriter = csv.writer(iOutputFile, delimiter=',', lineterminator='\n')
lenBuff = len(g_Hash)
for value in g_Hash.itervalues():
iValueLen = len(value)
for index in range(0, iValueLen):
csvInfoWriter.writerow(value[index])
iOutputFile.close()
except:
print sys.exc_type
我正在读取一个文件内容,将它们存储在dict g_Hash中。
读完1000条记录之后,我正在调用WriteFile1()来写文件,我从dict g_Hash [通过调用ClearRec()]清除内容。每次我调用WriteFile1()它覆盖我的输出文件。
请帮帮我,我想追加数据,不想覆盖..
编辑:从代码中删除后,仍然会出现问题。
if iOutputFile == 0:
return
更新:
ClearRec()代码:
WriteFile1()
g_Hash.clear()
----------- ClearRec()会导致任何问题吗? --------
答案 0 :(得分:2)
删除以下行。它总是被评估为False。
if iOutputFile == 0:
return
Python中的内置open
返回文件对象,而不是文件描述符。
>>> f = open('1', 'a')
>>> f
<open file '1', mode 'a' at 0x000000000281C150>
>>> type(f)
<type 'file'>
>>> f == 0
False
答案 1 :(得分:2)
您需要将附加内容更改为“a +”
进一步参考 http://docs.python.org/2/library/functions.html#open
模式'r +','w +'和'a +'打开文件进行更新(注意'w +'截断文件)。将“b”附加到模式以在二进制模式下打开文件,在区分二进制文件和文本文件的系统上;在没有这种区别的系统上,添加'b'没有效果。