python - 为什么保存的文件显示无,而控制台显示正确的响应?
问题描述
当我尝试将响应保存到文件时,即使实际响应显示在控制台中,它也不会保存。保存在文件中的结果为无。请参阅下面的示例
from concurrent.futures import ThreadPoolExecutor
import requests
#from timer import timer
######### create test file
URLsTest = '''
https://en.wikipedia.org/wiki/NBA
https://en.wikipedia.org/wiki/NFL
'''.strip()
with open('input.txt', 'w') as f:
f.write(URLsTest)
####################
with open('input.txt', 'r') as f:
urls=f.read().split('\n') # url list
def fetch(tt): # received tuple
session, url = tt
print('Processing')
with session.get(url) as response:
print(response.text)
#@timer(1, 5)
def main():
with ThreadPoolExecutor(max_workers=100) as executor:
with requests.Session() as session: # for now, just one session
results = executor.map(fetch, [(session, u) for u in urls]) # tuple list (session, url), each tuple passed to function
executor.shutdown(wait=True)
# write all results to text file
with open('output.txt', 'w') as f2:
for r in results: # tuple (url, html)
f2.write("%s\n" % r)
main()
响应文件 - output.txt
None
None
解决方案
首先,您可以避免打印 html,因为您将该输出保存到文件中。这样您就可以避免使用资源来打印结果。
然后,您的 fetch 不会为results
. 因此,您应该更改您的print
for a return
So 而不是打印 return theresponse.text
# print(response.text)
return response.text
推荐阅读
- class - Code Igniter 4 默认分页使用 Model Class 没有 order by 和 Join
- python - 如何在excel中选择一列数据?
- json - json 将每条记录格式化为一行
- reactjs - 在reactjs中删除一个单击按钮的类
- c++ - 我怎样才能使 GL_POINTS 重叠看起来像球体?
- python - 如何使用 python 连接到在线数据库?
- java - 从 txt 文件生成组并根据偏好生成它们
- mysql - 为什么 ERROR 1045 (28000): Access denied in ProxySQL server?
- bash - 'flask' 不是内部或外部命令、可运行程序或批处理文件
- c# - 添加 Swagger 时 .net 核心项目出错(仅当在服务器上发布项目时)