-2

我有一个由 excel 文件制成的文本文件,在 excel 文件中,单元格 A2 的名称为“供应商 A”。当我导入文本文件并使用以下代码时:

filea = open ( "jag.txt").readlines()
lines =[x.split() for x in filea]
print lines [0][1]

它只返回“供应商”而不是供应商 A,A 位于 [0][2] 行中。我如何导入它并让它识别完整的单词。因为如果将文本字段复制回 excel,它确实会正确复制它,因此 txt 文件 definitley 将它们识别为在一起。

4

3 回答 3

4

Excel 经常使用“制表符”作为分隔符,以“txt”格式保存。

所以你应该尝试这样的事情:

lines = []
with open('jag.txt') as f:
    lines = [ line.split('\t') for line in f.read().splitlines() ]
print(lines)

应该得到这样的东西

[ ['A1', 'A2', ...], ['B1', 'B2'], ... ]

为什么不只是“f.readlines()”?因为使用这个,你的最后一个单元格也将包含回车符('\n')。

为什么使用with 语句with最终会关闭文件,无论如何这是一个很好的选择。

解析文本文件的另一种方法可能是 python(包含)csv模块。使用csv.reader可以非常方便地解析字符分隔的文件/结构:

with open('jag.txt') as f: 
    lines = [ line for line in csv.reader(f, delimiter='\t') ]

-科林-

于 2012-09-03T13:24:45.537 回答
3

这样做是因为str.split()在每个空格、制表符和换行符之间进行拆分。您可以将str.split(',')其用作替代方案,但实际上您确实希望将csv -module 用于此类任务。

于 2012-09-03T12:42:01.983 回答
0

每行分隔的值是什么字符(空格、制表符、逗号等)?您当前的代码将在空白处拆分文本,split()不使用拆分字符。

于 2012-09-03T12:42:13.553 回答