使用python实现下列要求,读取windows中的某个文件夹,遍历其下所有子文件夹,收集出所有文件后缀,并去重展示出来
时间: 2024-03-14 18:47:48 浏览: 16
可以使用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遍历某一文件夹下所有的excle文件
好的,你可以使用Python中的os和glob模块来实现遍历某一文件夹下所有的excel文件。
首先,需要导入os和glob模块:
```python
import os
import glob
```
然后,使用glob模块来查找指定文件夹下的所有excel文件,可以通过如下代码实现:
```python
excel_files = glob.glob('/path/to/folder/*.xlsx')
```
其中,`/path/to/folder`需要替换成你要查找的文件夹的路径,`*.xlsx`表示查找所有后缀为xlsx的文件。
接下来,可以使用xlrd或者openpyxl等模块来读取这些excel文件的内容,具体操作可以参考相关模块的文档。
以下是一个示例代码,它遍历某一文件夹下的所有excel文件,并输出每个文件的名称:
```python
import os
import glob
folder_path = '/path/to/folder'
excel_files = glob.glob(os.path.join(folder_path, '*.xlsx'))
for file_path in excel_files:
print(os.path.basename(file_path))
```
其中,`os.path.join(folder_path, '*.xlsx')`会自动拼接文件夹路径和文件名通配符,`os.path.basename(file_path)`可以获取文件名。