如何在Python中替换文件路径指定部分 生成固定目录拷贝目标路径
问题根源
原有代码的逻辑错误出在路径拼接步骤:你调用了filename.replace(),是在已经提取到的原始文件名上做替换,完全没有修改目标目录路径字符串,自然得不到正确的目标路径。
正确实现方案
方案1:使用os.path.join拼接(推荐)
这是Python处理路径拼接的标准方案,会自动适配不同系统的路径分隔符,不会出现斜杠不匹配问题,稳定性更高。
import os.path original = input(str("Filepath:")) # 提取原始文件名 filename = os.path.basename(original) print(f"提取到的原始文件名:{filename}") # 固定目标目录,仅写目录路径即可 target_dir = r'C:\Users\Admin\Desktop\transfer' # 拼接得到完整目标路径 target_path = os.path.join(target_dir, filename) print(f"生成的目标路径:{target_path}")
如果需要适配你举例的C:\Users\Admin\Desktop\Directory2\***场景,只需要把target_dir的值换成r'C:\Users\Admin\Desktop\Directory2'即可,os.path.join会自动把文件名拼接到目录路径末尾。
方案2:字符串替换实现(适配占位符写法场景)
如果你一定要用带占位符的路径做替换,要把替换操作的主体改为目标路径字符串,修改后代码如下:
import os.path original = input(str("Filepath:")) filename = os.path.basename(original) print(filename) # 路径末尾的filename为占位符,后续会被实际文件名替换 target = r'C:\Users\Admin\Desktop\transfer\filename' # 对target字符串做替换,而非对filename本身做替换 target_path = target.replace('filename', filename) print(target_path)
内容的提问来源于stack exchange,提问作者Gašper Melanšek
相关产品推荐
相关产品推荐

