如何通过Python with open对象解析文件名并替换空格为下划线重命名?
解决方案
可以通过BufferedReader对象的name属性获取文件完整路径,再拆分出文件名进行修改,最后完成重命名。具体步骤如下:
- 从
data对象中提取文件的完整路径 - 拆分目录路径和文件名,将文件名中的空格替换为下划线
- 拼接新的文件路径,执行重命名操作
示例代码
import os # 原始文件路径 file_path = '/Users/ks/Downloads/file name 1.pdf' with open(file_path, 'rb') as data: # 执行文件读取、上传前预处理等操作 file_content = data.read() # 获取文件的完整原始路径 original_full_path = data.name # 拆分目录与文件名 dir_path, original_filename = os.path.split(original_full_path) # 替换文件名中的空格为下划线 new_filename = original_filename.replace(' ', '_') # 拼接新路径 new_full_path = os.path.join(dir_path, new_filename) # 关闭文件后执行重命名,避免系统占用报错 os.rename(original_full_path, new_full_path)
注意事项
_io.BufferedReader的name属性直接存储了打开文件的完整路径,无需解析打印输出内容- 优先在文件关闭后执行重命名:Windows系统中打开状态的文件无法被重命名,Linux/macOS虽允许,但关闭后操作更稳妥
- 若上传依赖文件内容,可先将内容读取到内存,关闭文件后再重命名,不影响上传流程
内容的提问来源于stack exchange,提问作者kms
相关产品推荐
相关产品推荐

