python requests 上传多文件问题2022-08-29 15:17:10Prince0813 Prince0813订阅者关注285文章0粉丝 测试交流1 195字数 115阅读0分23秒阅读模式目前在对项目的导入接口(上传)进行测试,找了些资料看到很多都是单文件的例子或者文件都在同一个路径下,像我这种在不同路径下的文件,怎么写会更优雅一点呢?我这个写的过于生硬了,有没有更好的写法,请大佬们指点下。软件测试本文转自于TesterHome,如有侵权请联系(2523030730@qq.com)删除。文章源自玩技e族-https://www.playezu.com/215715.html文章源自玩技e族-https://www.playezu.com/215715.html 复制文章 点赞 登录收藏
未知地区 1F
你这种写法没什么问题啊。
不同路径下文件上传,还可以写得更整齐 (无关优雅) 些。
files = {
“field1”: (“file”, open(r”..Folder1file1.xlsx”, “rb”)),
“field2”: (“file”, open(r”..Folder2file2.xlsx”, “rb”)),
“field3”: (“file”, open(r”..Folder3file3.xlsx”, “rb”)),
“field8”: (“file”, open(r”..Folder8file8.xlsx”, “rb”))
}
注意:这里不要用循环语句。demo_path = “F:codepytest-auto-api…”
uploadFiles = {
“field1”:(“file”: ,open(r”{}file_name”.formart(demo_path),”rb”)
}
代码确实不够简洁,假如文件很多,那么可读性会比较差。可以考虑下代码数据分离,用文本文件或者 yaml 文件把 path 单独存放,再写个 loader 读取到代码里面,代码就看着要 “优雅” 点。嗯嗯,是的嗯嗯,会封装的多谢,学习了import requests
def build_upload_files(file_name_list):
# 优化1: 将公共的文件夹路径抽离
root_folder_path = r’F:codepytest-auto-api2-masterrequests_demodemo’
temp_upload_files = dict()
# 优化2: 将重复冗余的代码用循环生成字典对象
for index, file_name in enumerate(file_name_list, start=1):
temp_upload_files.update({f’field{index}’: (‘file’, open(root_folder_path + ‘’ + file_name, ‘rb’))})
return temp_upload_files
if __name__ == ‘__main__’:
# 优化3: 可以从配置文件中读取file_name_list
file_names = [‘Project.xls’, ‘Projectstestdata.xls’]
upload_files = build_upload_files(file_names)
requests.post(url=’om’, files=upload_files)
数据代码分离,再加上变量,再加上正则,再加上筛选,就很优雅啦
,,水水水