【问题标题】:Convert an input file into a list of each line将输入文件转换为每行的列表
【发布时间】:2014-05-10 01:58:53
【问题描述】:

我遇到了将输入文件组织到字典中的问题,对于我的算法,我决定首先将输入文件转换为每行 (str) 的列表。基本上,给定:

ABCDE
FGHIJ ABCDEFG
FGHIJ ABCDEFG LOLOA

它会变成

[['ABCDE'], ['FGHIJ', 'ABCDEFG'], ['FGHIJ', 'ABCDEFG', 'LOLOA']]

我不确定如何开始。

【问题讨论】:

  • 您可以从阅读文件开始。你连这个都做不到?

标签: python list file input


【解决方案1】:

你需要做两件事:

  1. 读入文件。这最好通过with-statement 来完成。

  2. 使用list comprehension 或类似设备在空白处拆分行。

下面是一个演示:

>>> with open('/path/to/file.txt') as myfile:
...     print [line.split() for line in myfile]
...
[['ABCDE'], ['FGHIJ', 'ABCDEFG'], ['FGHIJ', 'ABCDEFG', 'LOLOA']]
>>>

【讨论】:

    【解决方案2】:
    fname = "*.txt"
    
    f = open(fname,'r')
    
    lines = f.readlines()
    

    open表示打开文件,'r'选项表示读取(其他选项包括'w'写入)

    【讨论】:

    • 不太正确,因为 readlines 返回的是字符串列表,而不是字符串列表。
    • @RobParker 对.. 我的错,需要使用 split 来分隔行
    猜你喜欢
    • 2013-02-13
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多