我见过很多人询问有关搜索文件夹和创建文件列表的问题,但我找不到任何帮助我做相反的事情。
我有一个csv文件,其中包含文件及其扩展名列表(xxx0.laz,xxx1.laz,xxx2.laz等)。我需要阅读此列表,然后在文件夹中搜索这些文件。然后我需要将这些文件移动到另一个文件夹。
到目前为止,我已经使用了csv并创建了一个列表。起初我在列表上遇到了麻烦。每行最后都有一个“\ n”,所以我删除了那些。从我发现的唯一其他例子...... [How do I find and move certain files based on a list in excel?。所以我从列表中创建了一个集合。但是,我不确定为什么或者如果我需要它。
所以这就是我所拥有的:
id = open('file.csv','r')
list = list(id)
list_final = ''.join([item.rstrip('\n') for item in list])
unique_identifiers = set(list_final)
os.chdir(r'working_dir') # I set this as the folder to look through
destination_folder = 'folder_loc' # Folder to move files to
for identifier in unique_identifiers:
for filename in glob.glob('%s_*' % identifier)"
shutil.move(filename, destination_folder)
我一直在想这个('%s_ *'%标识符)和glob函数。我没有找到任何这方面的例子,也许需要改变?
当我这么做的时候,我什么也得不到。没有错误,也没有移动实际文件...
也许我会以错误的方式解决这个问题,但这是迄今为止我发现的唯一一件事。
答案 0 :(得分:0)
真的不难:
for fname in open("my_file.csv").read().split(","):
shutil.move(fname.strip(),dest_dir)
你不需要很多东西......
如果您只想要源目录中的所有* .laz文件,则根本不需要csv ...
for fname in glob.glob(os.path.join(src_dir,"*.laz")):
shutil.move(fname,dest_dir)