os库

AffettoIris 2023-10-8 2,561 10/8

20231008使用OS库批量操作文件夹

os库

# 以上图为例
# 获取当前CLI所在的工作目录(≠本脚本文件所在目录),cwd取自current working directory
folder_path = os.getcwd()  # 得E:\小迪2022\小迪课\#py
# 获取folder_path所指文件夹中的文件夹名们
# 版本一
folder_names = [item for item in os.listdir(folder_path) if os.path.isdir(os.path.join(folder_path, item))]
# 版本二
folder_names = []
for item in os.listdir(folder_path):
    item_path = os.path.join(folder_path, item)
    if os.path.isdir(item_path):
        folder_names.append(item)
# 解释
1. os.listdir(folder_path)以列表的形式输出folder_path所含文件夹&文件们的名字,但只涉及直系子目录和子文件,即['mv.py', '第66天:省略', '第71天:省略']
2. print(os.path.join('E:\小迪2022\小迪课\#py', 'mv.py')) 输出 E:\小迪2022\小迪课\#py\mv.py,就是字符串拼接,但是自动补充目录拼接符
3. os.path.isdir(item_path) 判断是否是目录,输出boolean值

os.rename(old_file_name, new_file_name)

请确保在执行重命名操作之前,当前工作目录中包含要重命名的文件。如果文件不在当前工作目录中,你需要提供文件的完整路径。

另外,请注意,如果目标文件名已经存在,os.rename()函数将覆盖目标文件。如果你想要避免覆盖已存在的文件,你可以在重命名之前检查目标文件是否存在。

# python移动文件,自带重命名
# shutil.move()函数将源文件移动到目标目录,并将其重命名为新路径
import shutil
src = 'path/to/source/file.txt'
dst = 'path/to/destination/directory/file.txt'
shutil.move(src, dst)
  • os.rmdir(folder_path)只能删除空文件夹,如果文件夹中包含其他文件或文件夹,将无法删除该文件夹,并引发OSError异常。

  • shutil.rmtree(folder_path)用于递归地删除文件夹及其内容,即使文件夹中包含其他文件或文件夹也可以被删除,无法恢复。

- THE END -

AffettoIris

10月16日16:11

最后修改:2023年10月16日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论