我有一个表示对象的列表,而这些对象的值为YEAR,NAME,NUMBER。 是否有可能循环遍历该对象列表,获取所有值并将该行写入以该对象命名的文件YEAR值?
inData是对象列表,outPath就是我希望它们去的文件夹。 当我执行代码时,似乎每年只表示一行。就像下一个写行覆盖前一个值
一样代码示例:
def writeFileFromList(inData, outPath) :
for row in inData:
outfile = open(str(outPath +"/"+row.getYear(), "w+"))
outfile.write(str(row) + "\n")
outfile.close()
输出文件内容中我想要的示例:
2002;AAAAAA;1
2002;BBBBBB;2
2002;CCCCCC;3
答案 0 :(得分:1)
要在文件中附加一行,请使用
lock
此处,open("filename","a")
代表追加。
答案 1 :(得分:0)
试试这个
def writeFileFromList(inData, outPath) :
for row in inData:
with open(str(outPath +"/"+row.getYear(), "a")) as outfile:
outfile.write(str(row) + "\n")
答案 2 :(得分:0)
当您打开文件时,您需要具体使用您想要使用的模式,您可以参考以下链接获取更多详细信息:
https://docs.python.org/2/library/functions.html#open
如果您想将内容附加到年份文件中,则应使用' a'告诉python不要覆盖文件的模式,所以下面是你的例子的更正代码:
def writeFileFromList(inData, outPath) :
for row in inData:
outfile = open(str(outPath +"/"+row.getYear(), "a"))
outfile.write(str(row) + "\n")
outfile.close()