[英]How to write elements from a list into a csv with different columns
我有一个清单,例如
['1 sam 2000','2 jack 1232','3 lily 34']
列表中的每个元素实际上包含 3 列的信息,并用空格分隔。 这些是从txt
文件中读取的。 现在我希望将这些数据保存到一个csv
文件中。
我阅读它们使用
with open('test.txt','r',encoding='utf-8',errors='ignore') as file:
li = []
for i in file:
i =i.rstrip('\n')
li.append(i)
或者我可以简单地将 txt 转换为 csv 吗?
## assumed data to format in the list format
## split each element in the list and create another list of list item
data=['1 sam 2000','2 jack 1232','3 lily 34']
## to save the final result initialize the variable
final_data=[]
## go though each element in the list
for i in data:
# split each element with the space
subdata=i.split(" ")
## add the element to the final_data
final_data.append(subdata)
## import pandas and convert list into pandas dataframe
## convert pandas dataframe to csv using to_csv method in pandas
import pandas as pd
pd.DataFrame(final_data).to_csv("result.csv")
对于列表的每个元素,您可以使用split(" ")
创建一个单独的列表并输入 csv 库:
import csv
data= ['1 sam 2000','2 jack 1232','3 lily 34']
with open("csv_file.csv", "w", newline="") as file:
writer = csv.writer(file)
for element in data:
writer.writerow(element.split(" "))
这应该创建一个名为 csv_file.csv 的文件,其中包含:
1,sam,2000
2,jack,1232
3,lily,34
如果您需要添加标题,您可以在 for 循环之前添加这一行:
writer.writerow((header1, header2, header3...))
您正在将一个以空格分隔的 CSV 文件(我知道用词笨拙)读入一个列表。 只需使用csv
模块。
import csv
with open('test.txt','r',encoding='utf-8',errors='ignore', newline='') as file:
li = list(csv.reader(file, sep=' '))
如果需要,您可以跳过列表步骤,直接从 txt 文件转到 csv,这将完成这项工作:
import csv
with open('yourtextfile.txt', 'r') as in_file:
stripped = (line.strip() for line in in_file)
lines = (line.split(",") for line in stripped if line)
with open('result.csv', 'w') as out_file:
writer = csv.writer(out_file)
writer.writerow(('title', 'intro'))
writer.writerows(lines)
我用这个答案作为例子: Convert txt to csv python script
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.