You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Python脚本自动获取命令行当前目录并执行文件重命名?

当然可行!这其实是Python脚本非常常见的需求,实现起来也特别简单

核心逻辑一句话就能说清:当你在命令行的某个目录下运行脚本时,Python会自动把这个目录设为脚本的「当前工作目录」——你根本不用手动传参数,直接用内置工具获取这个目录就行。

具体实现方式

有两种主流写法可以获取当前工作目录,选你习惯的就行:

1. 用 os 模块(传统写法)

把你脚本里硬编码的目录路径替换成下面的代码,就能动态获取命令行当前所在的目录:

import os

# 获取命令行当前目录
target_dir = os.getcwd()
print(f"正在处理目录: {target_dir}")

# 接下来就可以遍历这个目录下的文件做重命名了
for filename in os.listdir(target_dir):
    file_path = os.path.join(target_dir, filename)
    if os.path.isfile(file_path):
        # 这里写你的重命名逻辑,比如给所有文档加前缀
        if filename.endswith((".docx", ".pdf")):
            new_filename = f"archive_{filename}"
            os.rename(file_path, os.path.join(target_dir, new_filename))

2. 用 pathlib 模块(Python 3.4+ 推荐的现代写法)

pathlib 提供了更直观的路径操作API,代码可读性更高,处理文件重命名也更简洁:

from pathlib import Path

# 获取命令行当前目录
target_dir = Path.cwd()
print(f"正在处理目录: {target_dir}")

# 遍历目录下的所有文件
for file_path in target_dir.iterdir():
    if file_path.is_file():
        # 示例:把所有图片重命名为序列格式(img_001.jpg、img_002.png...)
        if file_path.suffix in [".jpg", ".png", ".jpeg"]:
            # 生成有序的新文件名
            file_index = len(list(target_dir.glob("img_*"))) + 1
            new_name = f"img_{file_index:03d}{file_path.suffix}"
            file_path.rename(target_dir / new_name)

关键避坑提示

  • 别用__file__获取目录!__file__返回的是脚本本身所在的文件夹路径,不是你运行命令时的目录——这是很多新手容易踩的坑。
  • 确保脚本所在的文件夹已经加入系统PATH环境变量,这样你在任意目录下都能直接敲rename.py运行(Windows下可能需要重启命令行让PATH生效)。
  • Windows系统如果想去掉.py后缀直接运行,可以通过Python的py launcher配置,或者把脚本改成.pyw(不过控制台程序还是保留.py更方便)。

快速测试方法

你可以先写个极简脚本验证效果:

# test_dir.py
import os
print(f"当前工作目录: {os.getcwd()}")

把它放到PATH文件夹里,然后随便打开一个目录的命令行,运行test_dir.py——你会发现打印出来的就是你当前命令行所在的目录,完全符合你的需求!

内容的提问来源于stack exchange,提问作者Nick-H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:15:26