1

我有一个由每行 URL 组成的文本文件,如下所示:

https://www.google.com
https://www.facebook.com
https://www.gmail.com

我使用以下脚本:

import requests

add = open("manual_list.txt","r")

for a in add:
  response = requests.get(a, timeout=(2, 5), verify=False)
  fout = open("mylist.txt","a")
  fout.write(response.url+"\n")
  fout.close()

问题是,当我将生成的 URL 写入文件时,我会%0A在每一行的末尾得到附加信息。你能向我解释为什么会这样吗?

可以通过向strip输入添加函数来解决该问题:

response = requests.get(add.strip(), timeout=(2, 5), verify=False)

我的问题:

1)我不明白为什么需要这样做?

2) 搜索about %0A,变成换行符。这与换行符不同。你能解释一下它是如何添加的吗?是我名单的错还是图书馆的错?

我在其他程序中使用了相同的列表,我似乎没有类似的问题。为什么这里有问题?是图书馆的错吗?还是列表的错?

编辑:我使用 Ubuntu 18.04 和 python 3.6.5

4

2 回答 2

1
requests.get(add, timeout=(2, 5), verify=False)

应该是

requests.get(a, timeout=(2, 5), verify=False)

你能用那个改变再试一次吗?

编辑:

with open("url_list.txt","r") as f:
    content = f.readlines()
print(content)

将打印出来

['https://www.google.com\n', 'https://www.facebook.com\n', 'https://www.gmail.com\n']

在这里你可以看到你的文件中的行确实有一个'\n',这是正常的它只是告诉程序应该从哪里开始一个新的行。这就是为什么你需要一个 .strip()

于 2019-03-02T12:47:54.353 回答
0

for a in add将逐行读取文件,包括行尾字符,并在读取时将每一行存储在 a 中。如果您不想要角色,那么您必须将其剥离。

%0A是 unix 风格系统上的“换行符”字符(但它被称为“换行符”字符)。Windows 系统使用回车和换行 ( %0D%0A) 的组合。

希望有帮助!不,这不是你的错。

于 2019-03-02T13:12:55.523 回答