Python自动发帖工具如何将列表文件名转换为上传对话框所需格式
问题解决方法
问题根源
你直接将new_upload[i]这个列表对象传入str.format()方法时,Python会默认将列表转为带[]、逗号分隔的原生字符串格式,不符合Windows文件上传对话框要求的多文件输入规则。
修正代码
Windows系统的文件选择对话框要求多文件输入格式为:每个文件名/完整路径分别用双引号包裹,两两之间用空格分隔,按你的使用场景选对应修改方案即可:
方案1:对话框已提前定位到F:\test目录,只需输入文件名
# 取出对应批次的文件名列表,拼接为要求的格式 upload_filenames = ''.join([f'"{name}"' for name in new_upload[i]]) # pywinauto 写法 app["open"]["Edit1"].set_text(upload_filenames) # pyautoit 写法 autoit.control_set_text(handle, "Edit1", upload_filenames)
方案2:直接填入完整路径,无需提前切换对话框目录
需要先导入os模块处理路径拼接:
import os folder_path = r"F:\test" # 每个文件拼完整路径后按要求格式拼接 upload_filenames = ' '.join([f'"{os.path.join(folder_path, name)}"' for name in new_upload[i]]) # pywinauto 写法 app["open"]["Edit1"].set_text(upload_filenames) # pyautoit 写法 autoit.control_set_text(handle, "Edit1", upload_filenames)
补充说明
该写法天然兼容文件名带空格的场景,只要拼接出来的字符串符合双引号包裹、空格分隔的规则,就能一次性选中批次内的所有文件。
内容的提问来源于stack exchange,提问作者veryHardPython
相关产品推荐
相关产品推荐

