僞代碼:
def check_directory(directory):
"""Returns whether the directory has all the required names."""
names = ["love.dat", "love_p.dat", "love_r.dat", "love_q.dat"]
return all(os.path.exists(os.path.join(directory, x) for x in names))
尤其要注意這個用「聰明」的文件名操作使用的路徑連接方法(這和具體的操作系統),但它極有可能正常的字符串操作會工作的優良這裏;再加上注意它測試這些名稱的存在 - 如何做到這一點取決於你的確切環境和語言 - 而其餘的只是樣板來設置。
如果「愛」是乾的,而不是字面的名字,你需要動態地將它添加到名稱列表:
def check_directory(directory, stem):
"""Returns whether the directory has all the required names."""
names = [stem + x for x in [".dat", "_p.dat", "_r.dat", "_q.dat"]]
return all(os.path.exists(os.path.join(directory, x) for x in names))
print check_directory("/", "love") # example use
如果你要檢查所有可能的莖在一個給定的目錄,您只需循環顯示該目錄中的名稱:
def find_file_groups(directory):
"""Returns groups of files as tuples of (base, _p, _r, _q)."""
for name in os.listdir(directory):
if name.endswith(".dat"): # apply more filters if required
base = name[:-4] # remove .dat
names = tuple(base + x for x in [".dat", "_p.dat", "_r.dat", "_q.dat"])
if all(os.path.exists(os.path.join(directory, x) for x in names)):
yield names
問題在哪裏? – joni 2010-11-10 08:07:33
如果你不告訴我們你正在使用什麼環境和編程/腳本語言,這將被關閉爲「與編程無關」。 * P.S。這不是威脅,我只是預測社區如何迴應你的問題。這是無法回答的* – 2010-11-10 08:08:56
同意。你需要在程序中做到這一點? BASH?是否需要檢查相關文件是否存在?請澄清這個問題。 – 2010-11-10 08:09:17