我在尝试进行这项工作时遇到了麻烦
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文件,并能够使用文本文件中的列表。
现在所做的就是假设每个字母都是不同的字符串(?)
答案 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()
。