python实现 遍历指定文件夹内所有文件,文件名作为字符串,查看是否在指定文本中,若在,则复制文件到另一指定文件夹中
【场景】:
本文是通过输入 “
python实现 遍历指定文件夹内所有文件,文件名作为字符串,查看是否在指定文本中,若在,则复制文件到另一指定文件夹中
”
通过百度搜索(百度自带的AI),将3份结果进行简单的融合后得到的准确答案:
【目标】:选出在用的文件,便于把多余的文件移除。
【效果】:将 处理前 uploaded_files 中 文件共 438个,筛出 83个 在 new_file_name.txt (new_file_name.sql 进行重命名 改成的 )。也就是说,可以将 355个文件移除了。
【代码实现】:
1 """ 2 python实现 遍历指定文件夹内所有文件,文件名作为字符串,查看是否在指定文本中,若在,则复制文件到另一指定文件夹中 3 """ 4 5 import os 6 7 8 def search_file_names_in_text(folder_path, target_folder, text_file_path): 9 """ 10 搜索指定文件夹内所有文件的文件名,并检查它们是否出现在指定的文本文件中。 11 :param folder_path: 文件夹路径 12 :param text_file_path: 文本文件路径 13 :return: 返回在文本文件中找到的文件名列表 14 """ 15 # 存储在文本文件中找到的文件名 16 found_names = set() 17 18 # 确保文本文件存在 19 if not os.path.isfile(text_file_path): 20 raise ValueError(f"Text file {text_file_path} does not exist.") 21 22 # 打开文本文件 23 with open(text_file_path, 'r', encoding='UTF-8', errors='ignore') as text_file: 24 text_data = text_file.read() 25 26 # 遍历文件夹内的所有文件 27 for filename in os.listdir(folder_path): 28 file_path = os.path.join(folder_path, filename) 29 if os.path.isfile(file_path): # 确保是文件而非文件夹 30 if filename in text_data: # 检查文件名是否在文本中 31 found_names.add(filename) 32 source_path = os.path.join(source_folder, filename) 33 target_path = os.path.join(target_folder, filename) 34 os.rename(source_path, target_path) 35 36 return found_names 37 38 39 40 # 设置源文件夹和目标文件夹路径 41 source_folder = 'C:\\var\\uploaded_files' 42 target_folder = 'C:\\var\\new_file_src' 43 44 # 设置包含文件名的文本文件路径 45 filename_list_file = 'C:\\var\\new_file_name.txt' 46 47 48 # 使用示例 49 # folder_path = '/path/to/folder' 50 # text_file_path = '/path/to/textfile.txt' 51 found_names = search_file_names_in_text(source_folder, target_folder, filename_list_file) 52 print(f"Found names: {found_names}")
【总结】:充分运用 AI 帮忙处理。选用 Python 语音,快速实现!