常见的文件自动化处理
- 输出当前路径下的所所有文件及文件夹
- 快捷查看某路径喜爱所有文件
- 查询文件具体的详细信息
- 文件批量重命名
- 快速去重文本重复
1、解释说明
- 输出当前路径下的所有文件及文件夹:使用os模块的listdir()函数,可以列出指定目录下的所有文件和文件夹。
- 快捷查看某路径下所有文件:同样使用os模块的listdir()函数,只需传入目标路径即可。
- 查询文件具体的详细信息:使用os模块的stat()函数,可以获取文件的详细信息,如大小、创建时间等。
- 文件批量重命名:使用os模块的rename()函数,可以对文件进行重命名操作。
- 快速去重文本重复:可以使用集合(set)的特性,将文本内容转换为集合,从而去除重复项。
2.代码实现
文件夹操作
import os
# 输出当前路径下的所有文件及文件夹
print(os.listdir())
# 快捷查看某路径下所有文件
path = "/path/to/your/directory"
print(os.listdir(path))
# 查询文件具体的详细信息
file_info = os.stat("example.txt")
print(file_info)
文件批量操作
我先说一下,文件批量操作的一个思路
- 首先,我们需要遍历目标文件夹,获取所有文件的文件名。
- 然后,我们需要检查每个文件名是否重复。如果重复,我们需要修改这些文件名以避免冲突。
- 最后,我们需要确保新的文件名是唯一的,可以通过添加一个唯一的后缀(例如,数字或时间戳)来实现。
代码实现如下:
import os
import re
def batch_rename_files(folder_path):
# 获取文件夹中的所有文件名
file_names = os.listdir(folder_path)
# 创建一个字典来存储文件名及其出现的次数
name_count = {}
# 遍历文件名,统计每个文件名的出现次数
for name in file_names:
if name in name_count:
name_count[name] += 1
else:
name_count[name] = 1
# 遍历文件名,对于重复的文件名,添加一个唯一的后缀
for name in file_names:
if name_count[name] > 1:
new_name = re.sub(r'(\.\w+)$', r'_\d+\1', name, count=1)
os.rename(os.path.join(folder_path, name), os.path.join(folder_path, new_name))
name_count[new_name] = 1
# 调用函数,传入需要处理的文件夹路径
batch_rename_files("your_folder_path")
快速去重文本重复
# 快速去重文本重复
def remove_duplicates(text):
return ''.join(sorted(set(text), key=text.index))
text = "hello world hello python"
print(remove_duplicates(text))