-1

openpyxl用来处理许多 Excel 操作,但同样在寻找任何处理.txt文件的包。

我有一个如下的 .txt 文件,其中包含表格形式的数据。我必须从那里删除特殊字符并将原始数据放入 Excel 工作表中。

=============|=============|=============|=============|
    Name     |   Address   |PhoneNumber  |     Age     |
=============|=============|=============|=============|
   Matt      |   B3/24     |  8475968    |    25       |
   John      |   A1-A2 Wing|  3335968    |    44       |

有吗?

4

3 回答 3

5

为什么需要“处理” .txt 文件?大多数情况下,您只需使用命令打开它们,然后使用和方法open()读取/写入它们。read()write()

请查看 Python 文档中的读取和写入文件部分。从这里open()命令开始。


如果您有以某种特殊格式(例如CSV)编写的 txt 文件,您可以尝试在PyPi上搜索正确的模块。请注意,在这种情况下,Python 有很好的内置 CSV 模块,可以很好地处理 CSV 文件。在这里阅读更多。


在你编辑了你的帖子之后,我可以告诉你,你可以选择asciitable,它也在PyPi上并且有很好的文档
但是 - 如果没有这个库,这看起来并不难(嗨 - 只是说。你绝对应该使用这个模块,它看起来很棒)。只需逐行读取文件,然后用管道分割每一行。如果拆分后单元格的唯一内容是=符号,则留空行。Else - 只感受分裂后与行内容的单元格。

于 2013-01-06T20:17:07.667 回答
3

我建议你试试asciitable

于 2013-01-06T20:41:35.513 回答
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['Name'] 访问您的列,操作,过滤等。最后您使用or写入文件data.to_excel()请参阅此处的文档(特别是 groupby 部分):

编辑:因为列名是用空格('Name'而不是'Name')导入的,所以你还需要这样做:

data.columns = data.columns.map(str.strip)

之后data['Name']data['Address']等将正常工作。.dropna()需要删除最后一个被错误导入的空列,因为在您的文件中有一个分隔符“|” 在每一行的末尾。你可以试一试,.dropna()看看会发生什么。

于 2013-01-06T21:06:51.083 回答