使用python实现下列要求,读取windows中的某个文件夹,遍历其下所有子文件夹,收集出所有文件后缀,并去重展示出来
时间: 2024-03-14 09:47:48 浏览: 65
可以使用Python标准库中的os和set来实现这个功能。下面是代码示例:
```python
import os
# 遍历文件夹,收集所有文件后缀
def collect_suffixes(folder_path):
suffixes = set()
for root, dirs, files in os.walk(folder_path):
for file in files:
_, ext = os.path.splitext(file)
suffixes.add(ext.lower())
return suffixes
# 示例用法
if __name__ == '__main__':
folder_path = r'C:\Users\username\Documents'
suffixes = collect_suffixes(folder_path)
print('所有文件后缀:', suffixes)
```
上述代码中,`collect_suffixes`函数会遍历指定文件夹下的所有子文件夹,并收集所有文件的后缀(以小写形式存储)。使用set类型可以自动去重。最后,我们可以打印出所有文件后缀。
相关问题
使用python实现下列要求,一个数组{'.ofd', '.wps', '.pdf', '.xls', '.tif', '.ceb', '.docx', '.doc'},根据不同的类型,从某个windows的文件夹中遍历符合文件后缀的文件,并将文件的文本逐个读取出来
可以使用Python标准库中的os和glob来实现这个功能。下面是代码示例:
```python
import os
import glob
# 遍历文件夹,读取符合类型的文件文本
def read_files_by_type(folder_path, suffixes):
for ext in suffixes:
# 使用glob获取指定后缀的文件列表
files = glob.glob(os.path.join(folder_path, '*' + ext))
for file in files:
with open(file, 'r', encoding='utf-8') as f:
# 逐行读取文件内容
for line in f:
print(line)
# 示例用法
if __name__ == '__main__':
folder_path = r'C:\Users\username\Documents'
suffixes = {'.ofd', '.wps', '.pdf', '.xls', '.tif', '.ceb', '.docx', '.doc'}
read_files_by_type(folder_path, suffixes)
```
上述代码中,`read_files_by_type`函数会遍历指定文件夹下的所有文件,根据文件后缀过滤出符合类型的文件,并逐个读取文件文本内容。我们可以根据需要对读取出的文本进行进一步处理。
利用python读取dirpath文件夹下的所有子文件夹中以_audit.log 结尾的文件,将文件夹路径和文件信息存入列表中,再利用所有保存的文件名信息创建新的文件,新文件的后缀名变为.csv。
好的,您可以使用Python的os模块来实现这个功能。下面是代码示例:
```python
import os
dirpath = "your_directory_path"
file_list = []
# 遍历dirpath下的所有子文件夹
for root, dirs, files in os.walk(dirpath):
for file in files:
# 判断文件名是否以_audit.log结尾
if file.endswith("_audit.log"):
# 将文件路径和信息存入列表中
file_list.append([root, file])
# 遍历保存的文件名信息,创建新的.csv文件
for file_info in file_list:
# 构造新文件名
new_file_name = file_info[1].replace("_audit.log", "") + ".csv"
# 构造新文件路径
new_file_path = os.path.join(file_info[0], new_file_name)
# 创建新文件
with open(new_file_path, "w") as f:
pass # 这里仅创建了一个空文件,您可以根据需要写入文件内容
```
您可以将"your_directory_path"替换为实际的文件夹路径,并根据需要修改新文件的内容。
阅读全文