为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

浮云间 2022-05-24 09:26:05
10 40 0 0 00 0 1 01 0 2 02 2 0 10 0 1 10 1 2 11 1 1 11 2 2 00 0 1 02 0 1 0我想阅读上面的文本文件,以 xlsx 格式存储它。但是使用我的代码,整行都存储在同一个单元格中。但我希望它们在不同的细胞中。每个项目都是空格分隔的。import pandas as pddf=pd.read_csv('input.txt')df.to_excel('test2.xls',index=False)预期结果:每个项目存储在不同的单元格中。请注意,第一行只有 2 个元素。
查看完整描述

2 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

您需要将分隔符指定为空格而不是逗号。


import pandas as pd


df = 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 列。


查看完整回答
反对 回复 2022-05-24
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

import pandas as pd


with 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。这应该可以工作,我还没有检查过,所以我不知道这是否有效。


希望这可以帮助!


查看完整回答
反对 回复 2022-05-24
  • 2 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信