【问题标题】:Read links from a list from a txt file - Python从 txt 文件的列表中读取链接 - Python
【发布时间】:2017-06-02 19:12:43
【问题描述】:

我有一个名为 links.txt 的文件,其中包含以下列表 (列表名称:Set_of_links):

[https://link1.com, https://link2.com, https://link3.com/hello, https://links4.com/index.php, . . . . ]

我正在执行程序 links_python.py ,它需要从该文件中读取每个链接并将其存储在 python 脚本的局部变量中。我正在使用以下程序:

i = 0
with open(links.txt, "r") as f:
    f.read(set_of_links[i])
    i+=1

似乎无法正常工作。

【问题讨论】:

  • 试试set_of_links[i] = f.read()
  • 您能否提供一个更好的输入文件示例?请在密码框中。
  • 如果你可以定义数据的输入格式,那我建议你把数据转成JSON格式。然后您可以使用内置的 JSON 解析将文件转换为 python 列表/字典。
  • @TheDarkKnight 类似但不是f.read() 而不是f.readline() 或第一遍完全读取文件,其他值为空。

标签: python python-3.x


【解决方案1】:

如果你只有1行链接,把括号和空格扔掉试试

links = []
with open('links.txt')) as f:
    links = f.read().split(',')

【讨论】:

    【解决方案2】:

    尝试以下操作:感谢@Jean 的编辑

    i = 0
    with open(links.txt, "r") as f:
        set_of_links[i] = f.readline()
        i+=1
    

    【讨论】:

    • 我认为set_of_links.append 更像pythonic。然后你就可以带走i这个变量了。
    • set_of_links = [l.rstrip() for l in f] 会更好。但我不确定 OP 输入格式。
    • 这不会分隔每个链接并将其附加到问题中所述的列表中。
    【解决方案3】:

    如果您想分隔每个链接并将其附加到set_of_links,您可以使用re 替换这些字符[],,然后通过拆分创建列表。使用列表推导应该如下所示:

    import re
    with open('links.txt', 'r') as f:
        set_of_links = [re.sub(r'[(\[\],)]', '', x) for x in f.read().split()]
        print set_of_links
    

    输出:

    ['https://link1.com', 'https://link2.com', 'https://link3.com/hello', 'https://links4.com/index.php']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多