Python CSV:附加到COLUMN,重复条目

时间:2018-01-11 12:48:19

标签: python python-2.7 csv

我正在尝试写入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列,否则我想将文件追加到那些行。该脚本将是一个函数,因此需要检查列是否存在并附加到它们。

1 个答案:

答案 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")
相关问题