2015-05-26 40 views
0
import os.path 
import os 
import glob 
import time 

list_dir ='/path/to/file' 
os.chdir(list_dir) 
FILE_NAME = glob.glob('XXX_XXXX_o000000375*') 
path_to_files = glob.glob(os.path.join(list_dir, 'XXX_XXXX_o000000375*')) 


if (not os.path.isfile(FILE_NAME)): 
    print("error: %s file not found" % FILE_NAME) 
else: 
    print("Setting WAGs jail using %s ..." % FILE_NAME) 

我新來這和我試圖創建一個腳本來尋找一個文件,如果一個不存在然後再睡覺,再試一次。當我運行它時,我得到這個錯誤:Traceback(最近呼叫最後):文件觀察器檢查和睡眠,如果文件不存在,Unix

File 
    "createfile.py", line 20, in <module> 
     if (not os.path.isfile(FILE_NAME)): File "/usr/lib64/python2.6/genericpath.py", line 29, in isfile 
     st = os.stat(path) TypeError: coercing to Unicode: need string or buffer, list found 

有人可以幫我解決我的問題嗎?

+3

讀取錯誤將是一個良好的開端。 isfile()需要一個字符串(例如文件名),並且你傳入了你從glob()得到的列表。 –

回答

1

FILE_NAME不是一個文件,它的路徑的清單,那是因爲你使用glog.glob()所示here

glob.glob(pathname)

Return a possibly-empty list of path names that match pathname, which must be a string containing a path specification. pathname can be either absolute (like /usr/src/Python-1.5/Makefile) or relative (like ../../Tools//.gif), and can contain shell-style wildcards. Broken symlinks are included in the results (as in the shell).

+0

如果我需要使用通配符,因爲日期和時間每天都在變化,並且時間並不總是同一時間,那麼我該如何才能找到該文件? –