python - url 函数只显示 1 行?
问题描述
我正在尝试创建一个 gui,它使用文件资源管理器选择 csv 文件,程序将通过文件从每一行获取 url 并执行 requests.get 但是我只得到一行输出,如屏幕截图所示
代码:
import csv
import requests
from gooey import Gooey, GooeyParser
from checkurl import url_status
@Gooey(program_name="My program")
def parse_args():
UI = GooeyParser()
UI.add_argument('data_file',
action='store',
widget='FileChooser',
help="Source Excel file")
mainUI = UI.parse_args()
return mainUI
if __name__ == '__main__':
args = parse_args()
input_file=args.data_file
output= url_status(input_file)
mainUI = parse_args()
print(output)
功能:
import requests
import csv
def url_status(file_path):
with open(file_path, "r") as file:
reader = csv.reader(file, delimiter=",")
my_list = list(reader)
for row in my_list:
name, url = row
response = requests.get(url)
result = "{}: {}".format(name, response)
return result
解决方案
这是因为您result
每次进入循环时都会创建对象,并使用这一行为其分配新结果,result = "{}: {}".format(name, response)
并且只返回最后一项。
您可以创建一个结果列表并将其返回并循环打印结果。
def url_status(file_path):
with open(file_path, "r") as file:
reader = csv.reader(file, delimiter=",")
my_list = list(reader)
results = []
for row in my_list:
name, url = row
response = requests.get(url)
results.append("{}: {}".format(name, response))
return results
并通过迭代结果列表来一一打印结果:
if __name__ == '__main__':
args = parse_args()
input_file=args.data_file
output = url_status(input_file)
mainUI = parse_args()
for out in output:
print(out)
推荐阅读
- php - 关于简单PHP加解密的安全问题
- javascript - 按钮中断反应形式
- python - 将 DataFrame 重塑为 np.array
- python - 为什么使用 Boto3 使用 AWS Sagemaker 创建终端节点需要这么长时间?
- javascript - Firebase 删除一个数组项
- javascript - 如何将某些内容返回给事件侦听器调用的函数?
- python - 如何根据每个字符串中的字符修改列表中的每个字符串?
- jestjs - 开玩笑的黄色差异是什么意思
- python - 无法让 Jupyter 读取 CSV 文件 - 错误 - 找不到文件
- installation - 如何在安装 .appxbundle 期间红色外部文件