如何筛选某文件夹下与另一个文件夹中同名的文件并保存到新的文件夹(一个是.txt,一个是.fits)
时间: 2024-03-05 20:51:17 浏览: 110
【小白向】如何批量新建文件夹、txt文件、docx文件?
你可以使用Python的shutil模块中的copy函数来将文件复制到新的文件夹中。具体步骤如下:
1. 使用os模块的listdir函数获取某文件夹下的所有文件名,并将其存储在一个列表中。
2. 使用glob模块的glob函数获取另一个文件夹下所有拓展名为.fits的文件,并将其存储在一个列表中。
3. 使用for循环遍历第一步中的列表,判断每个文件名是否在第二步中的列表中出现过,如果出现过则说明该文件夹下存在同名的.fits文件,可以使用shutil模块的copy函数将该文件复制到新的文件夹中。
下面是示例代码:
```python
import os
import glob
import shutil
# 定义新文件夹的路径
new_folder_path = "/path/to/new_folder"
# 创建新文件夹
if not os.path.exists(new_folder_path):
os.mkdir(new_folder_path)
# 获取某文件夹下的所有文件名
folder_path_1 = "/path/to/folder1"
file_list_1 = os.listdir(folder_path_1)
# 获取另一个文件夹下所有拓展名为.fits的文件
folder_path_2 = "/path/to/folder2"
file_list_2 = glob.glob(folder_path_2 + "/*.fits")
# 遍历第一步中的列表,判断每个文件名是否在第二步中的列表中出现过
for file_name in file_list_1:
if file_name + ".fits" in file_list_2:
# 存在同名的.fits文件,使用shutil模块的copy函数将该文件复制到新的文件夹中
file_path = os.path.join(folder_path_1, file_name)
new_file_path = os.path.join(new_folder_path, file_name)
shutil.copy(file_path, new_file_path)
```
在上面的代码中,我们使用了os模块的mkdir函数来创建新的文件夹,在复制文件时,需要使用os模块的join函数将文件夹路径和文件名拼接在一起,才能得到文件的完整路径。
阅读全文