分成两列,将txt文本转换为csv文件



我有以下数据:

Graudo. A selection of Pouteria caimito, a minor member...
TtuNextrecod. A selection of Pouteria caimito, a minor member of the Sapotaceae...

我想把它分成两列

Column1       Column2
------------------------------------------------------------------------------
Graudo        A selection of Pouteria caimito, a minor member...
TtuNextrecod  A selection of Pouteria caimito, a minor member of the Sapotaceae...

需要代码方面的帮助。谢谢,

import csv # convert
import itertools #function for a efficient looping
with open('Abiutxt.txt', 'r') as in_file:
lines = in_file.read().splitlines() #returns a list with all the lines in string, including the line breaks
test = [line.split('. ')for line in lines ] #split period....but...need work
print(test)

stripped = [line.replace('', '').split('. ')for line in lines ]
grouped = itertools.izip(*[stripped]*1)
with open('logtestAbiutxt.csv', 'w') as out_file:
writer = csv.writer(out_file)
writer.writerow(('Column1', 'Column2'))
for group in grouped:
writer.writerows(group)

我不确定你是否需要在这里拉拉链。只需迭代输入文件的每一行,跳过空行,按句点拆分,然后写入csv文件:

import csv

with open('Abiutxt.txt', 'r') as in_file:
with open('logtestAbiutxt.csv', 'w') as out_file:
writer = csv.writer(out_file, delimiter="t")
writer.writerow(['Column1', 'Column2'])
for line in in_file:
if not line.strip():
continue
writer.writerow(line.strip().split(". ", 1))

注:

  • 注意:指定了一个tab作为分隔符,但您可以适当地更改它
  • 感谢@PatrickHaugh,因为您的第二列也可能包含句点,所以只按第一次出现的". "进行拆分

这应该会得到您想要的。这将处理所有的逃跑。

import csv
with open('Abiutxt.txt', 'r') as in_file:
x = in_file.read().splitlines()
x = [line.split('. ', 1) for line in x if line]
with open('logtestAbiutxt.csv', "w") as output:
writer = csv.writer(output, lineterminator='n')
writer.writerow(['Column1', 'Column2']) 
writer.writerows(x)

最新更新