我見過很多人問關於通過文件夾搜索和創建文件列表的問題,但我還沒有發現任何幫助我做相反的事情。使用列表來查找和移動特定的文件-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_ *' %標識符)與水珠功能。我還沒有找到任何這方面的例子,也許這需要改變?
當我這樣做時,我什麼都沒有得到。沒有錯誤,沒有實際的文件移動...
也許我正在走這個錯誤的方式,但這是我迄今爲止發現的唯一的東西。
你能給真正的例子什麼csv包含? –
您閱讀了文件的所有行,然後將它們合併成一行,其中包含所有文件名,然後創建一個包含單個項目的集合 - 這是行不通的。你(可能)不需要這個集合,並且你不需要'.join()'。您也可以將其描述爲CSV,但您可以將它視爲代碼,就好像它只是列表中的文件名一樣。數據是以逗號分隔的嗎? – TessellatingHeckler
@TessellatingHeckler是的,csv用逗號分隔。 例如: 20131217_483500e_4217500n.laz,20131217_483000e_4217500n.laz,20131125_483500e_4217000n.laz,等... 我給其他的鏈接把列表轉換成一組,但我不知道爲什麼。 .join()是爲了擺脫\ n。當我用line.split()編寫列表時,我嘗試從列表中的每一行中剝離\ n,但我一直收到諸如「line.strip()」之類的錯誤,但聲稱行未定義。或類似的東西。 –