在python中将文本文件转换为.xlsx

10 4


0 0 0 0


0 0 1 0


1 0 2 0


2 2 0 1


0 0 1 1


0 1 2 1


1 1 1 1


1 2 2 0


0 0 1 0


2 0 1 0

我想阅读上面的文本文件,以 xlsx 格式存储它。但是使用我的代码,整行都存储在同一个单元格中。但我希望它们在不同的细胞中。每个项目都是空格分隔的。


import pandas as pd


df=pd.read_csv('input.txt')


df.to_excel('test2.xls',index=False)

预期结果:每个项目存储在不同的单元格中。


请注意,第一行只有 2 个元素。


浮云间
浏览 132回答 2
2回答

慕森王

您需要将分隔符指定为空格而不是逗号。import pandas as pddf = pd.read_csv("input.txt", header=None, delim_whitespace=True, names=['a','b','c','d'])df.to_excel('test2.xls',index=False, header=None)请注意,我曾经delim_whitespace=True告诉 pandas 使用空格而不是逗号。此外,由于您在第一行中只有 2 个元素,因此我将列命名为让 pandas 知道您期望 4 列。

哈士奇WWW

import pandas as pdwith open('input.txt') as fin:    lines = fin.readlines()lines[0] = "0 " + lines[0] + " 0"with open('input2.txt', 'w') as fout:    for line in lines:        fout.write(line)df = pd.read_csv('input2.txt', header=None, delim_whitespace=True) df.to_excel('output.xls', index=False, header=None)因此,这会产生不必要的后果input2.txt,并且假设您的第一行是文本中的第一行,这应该可以工作。但它正在改变的是,它10 4变成0 10 4 0了它有 4 个元素。我这样做delim_whitespace=True是read_csv()因为它告诉熊猫不要用逗号而是用空格来做。在顶部,我打开文件,使用lines = fin.readlines()然后执行,lines[0]因为lines它是一个数组,第一个元素是arr[0]. 然后我把 0 和一个空格放在左边,一个空格,然后一个 0 在右边。然后我写了一个新文本,并使用for循环写了里面的所有行。最后,我将它插入到read_csv()函数中并应用to_excel()参数和我上面谈到的另一个参数。如果这会创建一个新的文本文件,那没关系,并且文本内容根本不是 pandas。这应该可以工作,我还没有检查过,所以我不知道这是否有效。希望这可以帮助!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python