2015-10-12 58 views
0

我有一個創建文件的腳本,但我想查看該文件是否存在,以便將其移動到其他目錄。我遇到的問題是它在一個目錄級別看起來太高。Python向上移動一個目錄以檢查文件是否存在

防爆FILEIN = A/B/C/D及其在尋找d,而不是C

print directory + " go up one!!!" 
    os.path.dirname(os.path.dirname(directory)) # this specific line does nothing 
    if f.endswith("_edited.xml"): 
     print "true" 
    else: 
     print "false" 
     #shutil.copy2(f, aEdit) 
+0

如何設置變量'directory'? – sgrg

回答

2

您可以使用os.path.isfile來檢查文件是否存在。如果是這樣,請繼續加強目錄結構,直到找到根目錄,然後引發錯誤。一旦文件不存在於目錄中,請將其複製到那裏。

最後,將目錄重置回其初始狀態。

import os 

cd = os.getcwd() 
while os.path.isfile(filename): 
    os.chdir('..') # go one level up. 
    if len(os.getcwd) == 1: 
     raise ValueError('Root recursion reached.') 

# Save file. 
shutil.copy2(filename, os.getcwd()) 

# Reset directory. 
os.chdir(cd) 
+0

謝謝你這個工作! – Anekdotin

5

如果使用os.getcwd(),你可以看到什麼目錄要在目前的工作。

您想使用os.chdir(PATH)來更改您的目錄。

更改目錄的方法是使用..

>>> print(os.getcwd()) 
C:\Python34 
>>> os.chdir('..') 
>>> print(os.getcwd()) 
C:\ 
1
os.path.dirname(os.path.dirname(directory)) # this specific line does nothing 

該行似乎「什麼都不做」,因爲你沒有任何地方存儲的結果。我不知道你的代碼應該做什麼(我沒有很好地理解你的問題),所以我不能建議一個解決方案,但我想這是你的問題。

相關問題