使用列表查找和移动特定文件 - python 2.7
Using a list to find and move specific files - python 2.7
我见过很多人询问有关搜索文件夹和创建文件列表的问题,但我还没有找到任何可以帮助我做相反事情的东西。
我有一个包含文件列表及其扩展名(xxx0.laz、xxx1.laz、xxx2.laz 等)的 csv 文件。我需要通读此列表,然后在文件夹中搜索这些文件。然后我需要将这些文件移动到另一个文件夹。
到目前为止,我已经获取了 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 函数的关系。我还没有找到任何示例,也许需要更改?
当我这样做时,我什么也得不到。没有错误,也没有移动实际文件...
也许我以错误的方式解决这个问题,但这是我迄今为止在任何地方发现的唯一东西。
真的不难:
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)
我见过很多人询问有关搜索文件夹和创建文件列表的问题,但我还没有找到任何可以帮助我做相反事情的东西。
我有一个包含文件列表及其扩展名(xxx0.laz、xxx1.laz、xxx2.laz 等)的 csv 文件。我需要通读此列表,然后在文件夹中搜索这些文件。然后我需要将这些文件移动到另一个文件夹。
到目前为止,我已经获取了 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 函数的关系。我还没有找到任何示例,也许需要更改?
当我这样做时,我什么也得不到。没有错误,也没有移动实际文件...
也许我以错误的方式解决这个问题,但这是我迄今为止在任何地方发现的唯一东西。
真的不难:
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)