如何遍历文件夹用os.listdir()读取文件夹,不读取文件名
时间: 2024-03-10 18:19:13 浏览: 57
可以使用os.path.isdir()方法来判断文件是否是文件夹,如果是文件夹则将其排除,代码如下:
```python
import os
folder_path = "your/folder/path"
file_list = []
for file in os.listdir(folder_path):
if os.path.isdir(os.path.join(folder_path, file)):
continue
else:
file_list.append(file)
```
这样可以遍历文件夹并且只返回文件名,不包括文件夹名。
相关问题
import os import pandas as pd # 设置文件夹路径 folder_path = 'path/to/folder' # 获取文件夹中的文件列表 file_list = os.listdir(folder_path) # 遍历文件列表,找到您需要的子文件夹 for file_name in file_list: subfolder_path = os.path.join(folder_path, file_name) if os.path.isdir(subfolder_path): # 进入子文件夹 os.chdir(subfolder_path) # 获取子文件夹中的.csv文件列表 csv_list = [f for f in os.listdir(subfolder_path) if f.endswith('.csv')] # 读取.csv文件 for csv_file in csv_list: df = pd.read_csv(csv_file) # 处理.csv文件 # ...在此基础上读取.csv文件名的最后一个字符作为输出
文件的一部分,可以使用以下代码:
```python
output = csv_file[-5] # 假设.csv文件名的最后一个字符是数字或字母,使用索引-5获取它
print(output) # 输出该字符
```
请注意,这仅适用于.csv文件名的最后一个字符是数字或字母的情况。如果文件名的结构不同,您需要相应地修改代码。
汉语解释代码import os import shutil import openpyxl # 读取姓名.xlsx的第2列内容 wb = openpyxl.load_workbook('姓名.xlsx') sheet = wb.active names = [cell.value for cell in sheet['B']] # 设置目录路径 #dir_a = r'H:/实验/1' #dir_b = r'H:/实验/2' dir_a = r'J:/' dir_b = r'I:/搭桥散装/76' # 遍历dir_a下的所有文件夹 for foldername in os.listdir(dir_a): folder_path = os.path.join(dir_a, foldername) if os.path.isdir(folder_path): print(f"扫描文件夹: {foldername}") count = 0 # 计数已复制的文件数 # 遍历文件夹下的所有文件 for filename in os.listdir(folder_path): file_path = os.path.join(folder_path, filename) # 检查文件类型是否为DCM,并且文件名是否包含姓名.xlsx的第2列内容 #if filename.endswith('.dcm') and any(name in filename for name in names): if any(name in filename for name in names): # 复制文件到dir_b目录下 shutil.copy(file_path, dir_b) print(f"复制文件: {filename}") count += 1 print(f"已扫描: {len(os.listdir(folder_path))}个文件") print(f"已复制: {count}个文件") print("已完成所有操作")
这段代码的功能是将指定文件夹(`dir_a)中符合条件的文件复制到另一个文件夹(`dir_b`)中。具体步骤如下:
1. 导入所需的模块:`os`、`shutil`和`openpyxl`。
2. 使用`openpyxl`模块读取名为“姓名.xlsx”的文件,获取其中第二列的内容,存储在`names`列表中。
3. 设置目录路径,`dir_a`为要扫描的文件夹路径,`dir_b`为要复制文件到的目标文件夹路径。
4. 遍历`dir_a`下的所有文件夹:
- 获取当前文件夹的路径。
- 检查是否为文件夹,如果是则继续执行下面的操作。
- 打印当前正在扫描的文件夹名称。
- 初始化计数器变量`count`,用于记录已复制的文件数量。
- 遍历当前文件夹下的所有文件:
- 获取当前文件的路径。
- 检查文件名是否包含在`names`列表中的任何一个元素。
- 如果满足条件,则将文件复制到`dir_b`目录下。
- 打印已复制的文件名。
- 更新计数器变量`count`。
- 打印已扫描的文件数量和已复制的文件数量。
5. 打印提示信息"已完成所有操作"。
这段代码主要依赖于`os`和`shutil`模块来操作文件和文件夹,以及`openpyxl`模块来读取Excel文件。它通过遍历文件夹和文件的方式来查找满足条件的文件,并将其复制到目标文件夹中。
阅读全文