2013-12-12 61 views
0

我試圖找到一些文件,創建一個文件夾,並在那裏移動文件。的Python shutil移動I/O錯誤

def test(): 
    try: 
     logfile = "C:\\Users\\alkis\\Desktop\\testouter\\test" 
     result_dir = os.path.join(logfile, "testzip") 
     print result_dir 
     os.makedirs(result_dir) 
     os.chmod(result_dir, stat.S_IWRITE) 
     kpath = logfile + "\\*.jpg" 
     print kpath 
     files = glob.glob(kpath) 
     for file in files: 
      filename = os.path.splitext(file)[0] 
      print filename 
      os.chmod(filename, stat.S_IWRITE) 
      shutil.move(filename, result_dir) 
    except Exception, e: 
     #shutil.rmtree(result_dir) 
     print e.__doc__ + "\r\n" 
     print e.message 
    return 

我得到的錯誤是:MS-Windows OS call failed 我檢查我的文件的訪問權限,他們不是隻讀。

回答

3

您列出每個文件,刪除擴展,然後試圖移動該文件名。

擴展名是文件名的一部分,不要刪除它。視窗Exlorer 隱藏擴展僅顯示文件時。

你也不需要調用os.chmod()上的文件名;只需跳過該步驟:

for file in files: 
    filename = os.path.splitext(file)[0] 
    print filename 
    shutil.move(filename, result_dir) 
+0

非常感謝!我打印了文件名,但我沒有注意到這一點。如果我叫os.path.splitext(文件)[0]我得到它沒有擴展名。是否有可能具有相同的結果加上擴展名,而不用concat? – alkis