我使用openpyxl
来处理许多Excel操作,但同样寻找任何处理.txt
文件的包。
我有一个.txt文件,如下所示,其中包含类似表格的数据。我必须从中删除特殊字符,并将原始数据放入Excel工作表中。
=============|=============|=============|=============|
Name | Address |PhoneNumber | Age |
=============|=============|=============|=============|
Matt | B3/24 | 8475968 | 25 |
John | A1-A2 Wing| 3335968 | 44 |
有没有?
答案 0 :(得分:5)
为什么你需要“处理”.txt文件?大多数情况下,您只需使用open()
命令打开它们,然后使用read()
和write()
方法对它们进行读/写。
请查看Python文档中的Reading and Writing Files部分。从open()
命令here开始。
如果您有以特殊格式(例如CSV)编写的txt文件,则可以尝试在PyPi上搜索正确的模块。请注意,在这种情况下,Python具有很棒的内置CSV模块,可以很好地处理CSV文件。阅读更多here。
在您修改帖子后,我可以告诉您,您可以访问asciitable,该PyPi也位于great documentation并且{{3}}。
然而 - 如果没有这个库,这样做看起来并不难(嗨 - 只是说。你应该使用这个模块,它看起来很棒)。只需按行读取文件,然后按管道拆分每一行。如果拆分后单元格的唯一内容是=
符号,请留空行。否则 - 只需在拆分后感受细胞的含量。
答案 1 :(得分:3)
我建议你试试asciitable。
答案 2 :(得分:2)
我总是使用pandas来解决这类问题,这就是你在一行中阅读文件的方法:
from pandas import read_table
data = read_table('table.txt', sep='|', skiprows=[0,2]).dropna(axis=1)
输出:
Name Address PhoneNumber Age
0 Matt B3/24 8475968 25
1 John A1-A2 Wing 3335968 44
之后,您可以使用数据['名称'],操作,过滤等访问您的列。最后,您使用data.csv()
或data.to_excel()
写入文件。请参阅文档here(特别是groupby部分):
编辑:因为列名称是用空格导入的('名称'而不是'名称'),你还需要这样做:
data.columns = data.columns.map(str.strip)
之后data['Name']
,data['Address']
等将正常运行。删除导入错误的最后一个空列需要.dropna()
,因为在您的文件中有一个分隔符'|'在每一行的末尾。你可以在没有.dropna()
的情况下试一试,看看会发生什么。