如何从网站导入外部文本文件并使用其中的列表

时间:2019-03-20 10:40:36

标签: python list

我在尝试进行这项工作时遇到了麻烦

import requests
import random
response = requests.get("https://cdn.discordapp.com/attachments/480168592164257792/557872162661335040/aaaaa.txt")
data = response.text
for line in data:
    print(line)

我正在尝试从互联网上提取txt文件,并能够使用文本文件中的列表。

现在所做的就是假设每个字母都是不同的字符串(?)

2 个答案:

答案 0 :(得分:1)

response.text似乎是字符,如果循环遍历它们,则会得到每个字符串。 (了解Python如何处理字符串)。 在这种情况下,Python不知道“线”是什么。因此,请使用换行符拆分数据,然后重试:

import requests
import random
  response = requests.get("https://cdn.discordapp.com/attachments/480168592164257792/557872162661335040/aaaaa.txt")
data = response.text
for line in data.split("\n"):
  print(line)

答案 1 :(得分:0)

属性response.text是一个字符串,因此对其进行迭代将为您提供单个字符。您可以用空格(或换行符)分隔字符串以获取所需的内容(我还添加了一些print语句以显示步骤):

import requests
response = requests.get(
    "https://cdn.discordapp.com/attachments/480168592164257792/557872162661335040/aaaaa.txt")
print('response.text type:', type(response.text))
print('response.text len:', len(response.text))
print(response.text)

print()
print('splitting by spaces:')
for i, s in enumerate(response.text.split()):
    print(i, s)

print()
print('splitting by newlines:')
for i, line in enumerate(response.text.split('\n')):
    print(i, line)

代码给出以下输出:

response.text type: <class 'str'>
response.text len: 21
a = ["please","work"]

splitting by spaces:
0 a
1 =
2 ["please","work"]

splitting by newlines:
0 a = ["please","work"]

@bruno在评论中建议使用str.splitlines();即使响应为字节,这也将起作用,因为还存在方法bytes.splitlines()