2015-04-22 24 views
0

我已經編寫了用於將文件從一個文件夾移動到另一個文件夾的代碼。我只移動了名稱存在於我的文本文件(aiq.txt)中的那些文件。 當文件數量少於數量(10)時工作正常,但當數量降至500時程序終止。 每個文件是50 MB 這裏是我的代碼: 「該程序將終止」使用shutil.move移動大文件

import os 
import shutil 
destination=r"dstpath" 
with open("aiq.txt") as infile: 
    for line in infile: 
     line=line.strip('\n) 
     for root,dirs,filenames in os.walk(r"H:\test_vectors"): 
      for filename in filenames: 
       if line in filename: 
        shutil.move(os.path.join(root,filename),destination) 
+0

它會拋出一個錯誤嗎? –

+0

命令行關閉 –

+0

這是什麼意思?你在shell中執行這個Python程序嗎?這個shell是否終止?你在使用什麼操作系統? –

回答

0
import os 
import shutil 

root = r"H:\test_vectors" 
destination = r"dstpath" 

file_list = [] 
dir_dict = {} 

with open('aiq.txt', 'r') as f: 
    for line in f: 
     file_list.append(line.strip()) 

for d, dirs, files in os.walk(root): 
    if files: 
     dir_dict[d] = files 

for key, item in dir_dict.items(): 
    for x in item: 
     if x in file_list: 
       try: 
        shutil.move(os.path.join(key, x), destination) 
       except: 
        pass 
+0

這段代碼沒有查看子文件夾。 –

+0

對不起,我錯過了這一點。可能需要創建某種字典,其中鍵是子目錄的完整路徑,值是文件名。然後找到從文件列表和從字典 –

+0

值的交集:你可以plz寫代碼,因爲我是相當新的python –