Python脚本读取文本文件并写入csv文件

2 投票
3 回答
13478 浏览
提问于 2025-04-18 00:54

我有一个文本文件,里面每一行都有多个单词(我想把这些单词当作列)。现在我想从这个文本文件中读取所有数据,并创建一个包含行和列的csv文件。我已经写了代码到这里 -

import csv
f=open("text.txt", "r")
reader=csv.reader(f)
offile=open("output.csv","wb")
writer=csv.writer(offile,delimiter='\t',quotechar='"',quoting=csv.QUOTE_ALL)
for row in reader:
 ........

f.close()
offile.close()

我不太明白怎么把每一行分成列,然后在写入csv文件的时候把这些列和行写回去?我刚开始学python,所以如果能给个好的例子我会非常感激。

谢谢

3 个回答

0

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这就像你从冰箱里拿出食材,然后在厨房里做饭一样。

有些时候,我们会遇到一些问题,比如数据格式不对,或者数据没有按我们想要的方式排列。这就像你在做饭时发现食材不够新鲜,或者切得不够整齐。

为了让我们的程序能够顺利运行,我们需要确保数据是正确的,格式是合适的,就像做饭前要检查食材是否新鲜一样。

在编程中,我们可以使用一些工具和方法来帮助我们处理这些数据,确保一切都能顺利进行。这就像在厨房里使用刀具、锅具等工具来帮助我们做出美味的菜肴。

总之,处理数据就像做饭一样,需要仔细准备和适当的工具,才能做出好吃的成果。

data = open('test.txt').read()
lines_of_data = data.splitlines()
tmp = []
for i in range(len(lines_of_data)):
    tmp.append(lines_of_data[i].split())    
data_df = pd.DataFrame(tmp) 
data_df.to_csv('test.csv')
0
import re
data = open("test.txt").read()
lines_of_data = data.splitlines()
writer=csv.writer(offile,delimiter='\t',quotechar='"',quoting=csv.QUOTE_ALL)
writer.writerows(map(lambda line:re.split("\s\s\s\s+",line.strip()),lines_of_data))

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

1

试着用正则表达式来分割这些行:

line = "Foo bar baz quux"
import re
pieces = re.split("\s+", line)
print pieces

这样会得到:

['Foo', 'bar', 'baz', 'quux']

上面用的正则表达式是用来匹配多个空格字符的(\s),其中“+”表示一个或多个。

撰写回答