2016-01-11 44 views
0

我得到了這段代碼,它查找.rar文件的目錄,並將它們解壓到另一個目錄。我希望能夠獲取已被刪除的文件的名稱,以便更改爲目標目錄(這是文件減去擴展名),並從那裏做更多的工作,但是我無法做任何其他事情在if(如,獲得TE的文件名與os.path.basename()執行patoolib.extract_archive(my_file, outdir="/root/tree/def")獲取文件名並將其傳遞給Python中的另一個函數

我怎樣才能得到文件的名稱和傳遞給另一個函數之前

代碼:

import shutil, os, patoolib, fnmatch, glob 

def unrar(): 
    for my_file in glob.glob('/root/tree/down/*'): 
     if fnmatch.fnmatch(my_file, '*.rar'): 
      patoolib.extract_archive(
       my_file, outdir="/root/tree/def") 

unrar() 
+0

您可以在os.listdir嘗試F(DIRECTORY_NAME): 如果file_n.endswith( 'RAR。'): – Zohar81

回答

0

你可以試試以下代碼可以逐一獲取.rar文件:

import os 
for f in os.listdir(<dir_name>): 
    if f.endswith('.rar'): 
     print file 
     #do your stuff 
     patoolib.extract_archive(file, outdir="/root/tree/def") 

這裏是一個例子。

考慮以下文件夾/用戶/ BLA /用以下內容XYZ

a.rar 
b.rar 
c.txt 

,如果你對這個文件夾應用上面的代碼,你會得到僅遠遠沒有文件擴展名:

a.rar 
b.rar 

現在你可以將這些文件傳送到任何你想要的功能......

+0

我想要做的是獲取已處理的文件名並將其傳遞給另一個函數,以便我可以使用它進行更多操作。 – xavier

+0

你是什麼意思「已處理的文件名」?它不是rar文件本身嗎? – Zohar81

+0

我想獲取我正在處理的rar文件的名稱減去擴展名,並將其傳遞給另一個函數以使用它。 – xavier

相關問題