我正在尝试写入CSV文件,列的每个新条目,但每次CSV文件都会出现重复条目。我只想创建1,2,3行(如果它们不存在),作为第一行,然后将数据添加到第1,2和3列。 我有当前的代码:
import _csv
myData = [[1, 2, 3], ['Good Morning', 'Good Evening', 'Good Afternoon']]
myFile = open('csvexample3.csv', 'a')
with myFile:
writer = _csv.writer(myFile)
writer.writerows(myData)
结果我得到了:
1,2,3
Good Morning,Good Evening,Good Afternoon
1,2,3
Good Morning,Good Evening,Good Afternoon
1,2,3
Good Morning,Good Evening,Good Afternoon
如果不存在,我只希望脚本创建1,2和3列,否则我想将文件追加到那些行。该脚本将是一个函数,因此需要检查列是否存在并附加到它们。
答案 0 :(得分:0)
尝试以下代码。说明添加为注释:
myData = [[1, 2, 3], ['Good Morning', 'Good Evening', 'Good Afternoon']]
# CREATE DATA FIRST AND THEN ADD IT TO FILE:
dd = [] # an empty list to be filled with values to be added
dd.append(",".join(list(map(lambda x: str(x), myData[0])))) # add column header
for i in range(3):
dd.append(",".join(myData[1])) # add rows
# CHECK IF FILE EXIST AND THEN TAKE ACTION:
import os
if os.path.exists("calling.txt"):
with open("calling.txt", 'a') as ff: # create existing file for appending
for i in dd[1:]: # omit adding header
ff.write(i)
ff.write("\n")
else:
with open("calling.txt", 'w') as ff: # create new file for writing
for i in dd: # add rows including header
ff.write(i)
ff.write("\n")