0%

自动化文件操作

python的尝试

在日常生活中,人们最常用的自动化文件操作包括以下几个方面:

  1. 文件备份:定期自动备份重要文件,以防止数据丢失或损坏。可以使用Python编写脚本,通过复制、压缩或上传文件到云存储等方式进行文件备份。
  2. 批量文件重命名:当需要对大量文件进行重命名时,可以使用Python编写脚本来自动批量修改文件名。通过遍历文件夹,对文件进行重命名操作,可以根据规则或特定条件对文件进行重命名。
  3. 文件搜索和整理:通过编写脚本,可以自动搜索指定文件类型或文件名中包含特定关键字的文件,并将它们整理到指定的文件夹中。这样可以节省时间和精力,同时保持文件的整洁和组织性。
  4. 文件格式转换:如果需要将一种文件格式批量转换为另一种格式,可以使用Python来实现自动化的文件格式转换操作。例如,将多个图片文件批量转换为另一种图片格式,或将多个文档文件批量转换为PDF格式等。
  5. 文件合并和拆分:当需要合并多个文件为一个文件或将一个大文件拆分成多个小文件时,可以使用Python编写脚本来实现自动化的文件合并和拆分操作。这对于处理大量数据或文件非常有用。
  6. 文件压缩和解压缩:如果需要对多个文件或文件夹进行压缩或解压缩操作,可以使用Python编写脚本来自动进行文件压缩和解压缩。通过使用Python的压缩库(如zipfile)可以方便地实现自动化的压缩和解压缩功能。

以上是生活中常见的自动化文件操作示例,你可以根据具体的需求和情况,使用Python编写脚本来实现更多的自动化文件操作。

需求:复制一串姓名,批量生成文件夹

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import os

# 获取用户输入的一串名字,以逗号分隔
names_input = input("请输入一串名字(以逗号分隔):")

# 将用户输入的名字分割成列表
names = names_input.split(",")

# 指定文件夹路径
folder_path = "D:/Python project/test"

# 遍历姓名列表,创建文件夹
for name in names:
# 去除名字前后的空格
name = name.strip()

# 组合文件夹路径和姓名
folder_name = os.path.join(folder_path, name)

# 检查文件夹是否存在,如果不存在则创建
if not os.path.exists(folder_name):
os.makedirs(folder_name)
print(f"Created folder: {folder_name}")
else:
print(f"Folder already exists: {folder_name}")

说明:

在这个示例中,我们使用 input() 函数获取用户输入的一串名字,用户输入的名字之间以逗号分隔。然后,我们使用 split() 方法将输入的名字分割成列表。接下来,我们遍历名字列表,去除名字前后的空格,并使用 os.path.join() 函数将文件夹路径和每个姓名组合起来,得到完整的文件夹路径。然后,通过检查文件夹是否存在来判断是否需要创建文件夹,如果文件夹不存在,则使用 os.makedirs() 函数创建文件夹。

你可以运行代码并输入一串名字,代码将根据输入的名字创建对应的文件夹,并输出相应的提示信息。请注意,确保你有足够的权限在指定的文件夹路径下创建文件夹

需求:批量更改文件夹里面的文件名称

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import os

# 指定文件夹路径
folder_path = "D:/系统基本存储"

# 获取文件夹中的文件列表
file_list = os.listdir(folder_path)

# 遍历文件列表,重命名文件
for i, file_name in enumerate(file_list):
# 获取文件的完整路径
file_old_path = os.path.join(folder_path, file_name)

# 检查是否为文件
if os.path.isfile(file_old_path):
# 构建新的文件名
new_file_name = f"{i + 1}{os.path.splitext(file_name)[1]}"

# 构建新的文件路径
file_new_path = os.path.join(folder_path, new_file_name)

# 重命名文件
os.rename(file_old_path, file_new_path)
print(f"Renamed file: {file_name} -> {new_file_name}")

说明:

​ 在这个示例中,我们首先指定了要重命名的文件夹路径 folder_path。然后,使用 os.listdir() 函数获取文件夹中的文件列表。接下来,我们使用 enumerate() 函数遍历文件列表,同时获取每个文件的索引和名称。然后,通过检查是否为文件类型,我们可以排除文件夹和其他非文件的项。接下来,根据索引构建新的文件名,(将索引加1并在前面添加 “1”),同时保留原文件的扩展名。最后,使用 os.rename() 函数将原文件重命名为新的文件名。

你可以根据实际需求修改文件夹路径 folder_path,然后运行代码。代码将遍历指定文件夹中的文件,并将它们按照指定的规则进行重命名。输出信息将显示每个文件的原文件名和新文件名。请注意,执行文件重命名操作时要谨慎,确保对文件进行备份或确保操作安全性。

需求:批量更改文件夹里面的文件夹名称

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import os

# 指定文件夹路径
folder_path = "D:/Python project/test"

# 获取文件夹中的文件列表
file_list = os.listdir(folder_path)

# 遍历文件列表,重命名文件夹
for i, file_name in enumerate(file_list):
# 获取文件夹的完整路径
folder_old_path = os.path.join(folder_path, file_name)

# 检查是否为文件夹
if os.path.isdir(folder_old_path):
# 构建新的文件夹名
new_folder_name = f"{i + 1}"

# 构建新的文件夹路径
folder_new_path = os.path.join(folder_path, new_folder_name)

# 重命名文件夹
os.rename(folder_old_path, folder_new_path)
print(f"Renamed folder: {file_name} -> {new_folder_name}")

说明:

在这个示例中,我们首先指定了要重命名的文件夹路径 folder_path。然后,使用 os.listdir() 函数获取文件夹中的文件列表。接下来,我们使用 enumerate() 函数遍历文件列表,同时获取每个文件夹的索引和名称。然后,通过检查是否为文件夹类型,我们可以排除文件和其他非文件夹的项。接下来,根据索引构建新的文件夹名,(将索引加1并在前面添加 “1”)。最后,使用 os.rename() 函数将原文件夹重命名为新的文件夹名。

你可以根据实际需求修改文件夹路径 folder_path,然后运行代码。代码将遍历指定文件夹中的文件夹,并将它们按照指定的规则进行重命名。输出信息将显示每个文件夹的原文件夹名和新文件夹名。请注意,执行文件夹重命名操作时要谨慎,确保对文件夹进行备份或确保操作安全性。

需求:将图片文件按照文件格式分别保存到不同的文件夹中

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import os
import shutil

# 指定源文件夹路径
source_folder = "D:/系统基本存储"

# 遍历源文件夹中的文件
for file_name in os.listdir(source_folder):
# 构建源文件的完整路径
file_path = os.path.join(source_folder, file_name)

# 检查是否为文件
if os.path.isfile(file_path):
# 获取文件的扩展名
extension = os.path.splitext(file_name)[1].lower()

# 创建目标文件夹路径
destination_folder = os.path.join(source_folder, extension[1:])

# 如果目标文件夹不存在,则创建它
if not os.path.exists(destination_folder):
os.makedirs(destination_folder)

# 构建目标文件的完整路径
destination_file_path = os.path.join(destination_folder, file_name)

# 移动文件到目标文件夹中
shutil.move(file_path, destination_file_path)
print(f"Moved file: {file_name} to {destination_folder}")

说明:

在这个示例中,我们首先指定了源文件夹的路径 source_folder。然后,使用 os.listdir() 函数遍历源文件夹中的文件。接下来,通过检查是否为文件类型,我们可以排除文件夹和其他非文件的项。然后,使用 os.path.splitext() 函数获取文件的扩展名,并将其转换为小写。接着,我们根据扩展名构建目标文件夹的路径,将扩展名中的点去除。如果目标文件夹不存在,则使用 os.makedirs() 函数创建它。最后,使用 shutil.move() 函数将文件移动到目标文件夹中。

你可以根据实际需求修改源文件夹路径 source_folder,然后运行代码。代码将遍历源文件夹中的图片文件,并将它们按照文件格式分别保存到对应的文件夹中。输出信息将显示每个文件被移动到的目标文件夹。请确保源文件夹中只包含图片文件,并注意在执行文件移动操作时要谨慎,确保对文件进行备份或确保操作安全性。