目前在对项目的导入接口(上传)进行测试,找了些资料看到很多都是单文件的例子或者文件都在同一个路径下,像我这种在不同路径下的文件,怎么写会更优雅一点呢?我这个写的过于生硬了,有没有更好的写法,请大佬们指点下。
你这种写法没什么问题啊。
不同路径下文件上传,还可以写得更整齐 (无关优雅) 些。
files = {
"field1": ("file", open(r"..\Folder1\file1.xlsx", "rb")),
"field2": ("file", open(r"..\Folder2\file2.xlsx", "rb")),
"field3": ("file", open(r"..\Folder3\file3.xlsx", "rb")),
"field8": ("file", open(r"..\Folder8\file8.xlsx", "rb"))
}
注意:这里不要用循环语句。
demo_path = "F:\code\pytest-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:\code\pytest-auto-api2-master\requests_demo\demo'
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', 'Projects\\testdata.xls']
upload_files = build_upload_files(file_names)
requests.post(url='https://www.xx.com', files=upload_files)
数据代码分离,再加上变量,再加上正则,再加上筛选,就很优雅啦
,,水水水