Skip to main content
 首页 » 编程设计

python之争论有问题

2025年05月04日17lonelyxmas

我已经尝试编写这个可以批量重命名文件扩展名的小脚本。我传递了三个参数,文件所在的目录、当前扩展名和新扩展名。

我得到的错误是

python batch_file_rename_2.py c:\craig .txt .html 
Traceback (most recent call last): 
  File "batch_file_rename_2.py", line 13, in <module> 
  os.rename(filename, newfile)  
WindowsError: [Error 2] The system cannot find the file specified 

代码是

import os 
import sys 
 
work_dir=sys.argv[1] 
old_ext=sys.argv[2] 
new_ext=sys.argv[3] 
 
files = os.listdir(work_dir) 
for filename in files: 
    file_ext = os.path.splitext(filename)[1] 
    if old_ext == file_ext: 
        newfile = filename.replace(old_ext, new_ext) 
        os.rename(filename, newfile) 

请您参考如下方法:

os.listdir 只返回文件名,不返回完整路径。使用 os.path.join 重新创建正确的路径:

for filename in files: 
    file_ext = os.path.splitext(filename)[1] 
    if old_ext == file_ext: 
        newfile = filename.replace(old_ext, new_ext) 
        os.rename( 
            os.path.join(work_dir, filename),  
            os.path.join(work_dir, newfile))