Txt列表划分列

时间:2018-01-30 15:48:25

标签: python python-2.7

我有一堆数据存储在txt文件的单个列中,如下所示:

name1
address1
number1
name2
address2
number2
name3
address3
number3
name4
address4
number4

我想在3列中对此进行排序,以便将其导入excel。

任何线索?

4 个答案:

答案 0 :(得分:1)

您可以使用Microsoft word

执行此操作

将数据粘贴到MSWord(作为keep text only),然后全部选择(Ctrl+A)。转到insert功能区。从Table按钮,选择convert text to table

选择number of columns 3,然后选择separate text at作为Paragraph

它会为您提供所需的确切输出。无需编码您遇到的所有内容。您可以阅读更多相关信息here

答案 1 :(得分:0)

你可能想要这样的东西:

with open("input.txt", "r") as infile:

  line = infile.read().split()
  line = [" ".join(line[i:i+3]) for i in range(0,len(line),3)]
  print(line)

  with open("output.txt", "w") as outfile:
    for i in line:
      outfile.write(i + "\n")

output.txt的内容:

name1 address1 number1
name2 address2 number2
name3 address3 number3
name4 address4 number4

答案 2 :(得分:0)

这应该这样做:

infile = open("data.txt","r")

outfile = open("Excel.csv","w")

while True:
    name = infile.readline().strip()
    address = infile.readline().strip()
    number = infile.readline().strip()

    data = ','.join([name,address,number])
    if data == ",,":
        break

    data += '\n'
    outfile.write(data)

如果我记得从我的Excel时代开始,它对CSV的效果非常好。

答案 3 :(得分:0)

实现这一目标的最简单方法是使用一段代码,这些代码被不必要地重写了数千次,因为由于某些原因它还没有被包含在标准库中(或者作为某种类型的内置,可能尽管在python中经常使用它,但是让生活变得更加轻松。 Vasilis G。答案中包含一个版本。

chunk_by_length(iterable, length):
    return (iterable[i:i+length] for i in range(0, len(iterable), length))

一旦你掌握了这个简单但非常方便的功能,这个问题就变得微不足道了。

data = open('data.txt').read().splitlines()
formatted = '\n'.join(','.join(chunk) for chunk in chunk_by_length(data, 3))
open('data.csv', 'w').write(formatted)

虽然已经选择了已接受的答案,但我仍然发布此答案以帮助任何试图在python中解决此问题或类似问题的人。