尝试使用以下格式将文本文件中的类型,数字,名称等变量旁边的文本复制到csv:
Type Name Phone email Mailing Address
我有很多这种形式的文本文件:
Type: zxyz
Number: 34567892
Name: xyzzzxx, yuw
Phone Number: 000-000-0000
Email Address: any@gmail.com
Mailing Address: bla bla bla
我无法从文本文件中复制搜索字符串旁边的文本并将其写入csv文件。
答案 0 :(得分:0)
您可以将一个文件的内容转换为如下字典:
with open('file.txt') as f:
d = dict(line.strip().split(': ') for line in f)
然后使用csv.DictWriter
将字典写入CSV文件:
import csv
fieldnames = ['Type', 'Name', 'Phone Number', 'Email Address', 'Mailing Address']
filenames = ['a.txt', 'b.txt', 'c.txt']
with open('out.csv', 'w') as outfile:
writer = csv.DictWriter(outfile, fieldnames)
writer.writerheader()
for filename in filenames:
with open(filename) as f:
d = dict(line.strip().split(': ') for line in f)
writer.writerow(d)
这会将输入文件中的所有数据复制到单个CSV文件中。如果要排除某些字段,请在调用fieldnames
之前调整writerow()
并从字典中删除不需要的字段。您还可以通过更改fieldnames
和字典中的字段名称来重命名字段。