[英]Write data to CSV file with column name using python
我正在使用下面的 python 代碼將數據寫入具有列名的 CSV 文件。
def get_filename_datetime():
# Use current date to get a text file name.
return "Report-" + str(datetime.date.today())
# Get full path for writing.
filename = get_filename_datetime()
Data = [["FirstName", "LastName","Failed_User_Id"],
[firstname, lastname, faileduserid]]
Reportfilename = os.path.join(reportspath, filename)
myfile = open(Reportfilename + '-Results.csv', "a+")
with myfile:
writer = csv.writer(myfile)
writer.writerows(Data)
我在一個文件中得到 output 為:
我預期的 output 是:
我在一個文件中得到 output 為:
但是我正在為每一行打印列名。
那是因為它們在列表Data
中:
Data = [["FirstName", "LastName","Failed_User_Id"],
[firstname, lastname, faileduserid]]
只需刪除它們:
Data = [[firstname, lastname, faileduserid]]
如何在此處編寫 header 的示例。
我猜你在循環中使用方法get_filename_datetime
,所以你一直將它附加到 CSV 文件中:
Data = [["FirstName", "LastName","Failed_User_Id"],
[firstname, lastname, faileduserid]]
解決方案是將列名移到循環之外,append 僅行數據:
Data = [[firstname, lastname, faileduserid]]
您正在重復標題,因為每次添加一行時,您也會再次添加標題您需要將Data
中的第一行分開並寫入一次
def get_filename_datetime():
# Use current date to get a text file name.
return "Report-" + str(datetime.date.today())
# Get full path for writing.
filename = get_filename_datetime()
headers = ["FirstName", "LastName","Failed_User_Id"]
Data = [firstname, lastname, faileduserid]
Reportfilename = os.path.join(reportspath, filename)
myfile = open(Reportfilename + '-Results.csv', "a+")
with myfile:
writer = csv.writer(myfile)
if(os.stat(myfile).st_size == 0):
writer.writerows(header)
writer.writerows(Data)
@mtdot 和 @schoon 的兩個答案都是正確的
如果要使用 pandas
你可以用這個
`
columns = ['FirstName', 'LastName', 'Failed_User_Id']
header = True
for dataset in datasets:
df = pd.DataFrame(dataset)
df = df[columns]
mode = 'a+'
df.to_csv('./new.csv', encoding='utf-8', mode=mode, header=header, index=False)
header = False
`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.