【发布时间】:2016-07-29 21:47:53
【问题描述】:
我有不同的文本文件,我想将其中的值提取到 csv 文件中。 每个文件的格式如下
main cost: 30
additional cost: 5
我设法做到了,但问题是我希望它将每个文件的值插入到不同的列中,我还希望文本文件的数量成为用户参数
这就是我现在正在做的事情
numFiles = sys.argv[1]
d = [[] for x in xrange(numFiles+1)]
for i in range(numFiles):
filename = 'mytext' + str(i) + '.text'
with open(filename, 'r') as in_file:
for line in in_file:
items = line.split(' : ')
num = items[1].split('\n')
if i ==0:
d[i].append(items[0])
d[i+1].append(num[0])
grouped = itertools.izip(*d[i] * 1)
if i == 0:
grouped1 = itertools.izip(*d[i+1] * 1)
with open(outFilename, 'w') as out_file:
writer = csv.writer(out_file)
for j in range(numFiles):
for val in itertools.izip(d[j]):
writer.writerow(val)
这就是我现在得到的,一列中的所有内容
main cost
additional cost
30
5
40
10
我希望它是
main cost | 30 | 40
additional cost | 5 | 10
【问题讨论】:
-
你试过使用元组吗?
-
所需输出中的最后一列来自哪里?每个输入文件中是否只有两行?
-
我假设输入文件看起来像: 主要成本:30 额外成本:5 主要成本:40 额外成本:10
-
啊...,所以每个文件都是一个新列。
-
@wwii 是的,正如迈克尔所说的
标签: python csv extract multiple-columns