我有一個程序,我寫了一個目錄中的所有文件,然後查找帶有標誌的文件,然後將它們輸入到不同的程序中。它工作的很好,我現在唯一想做的事情就是把腳本放在一個盒子的一個位置上,然後讓它知道要查看我當前作爲工作目錄的目錄。目前,我所做的只是將腳本mv到我正在工作的任何目錄中,然後從那裏調用它,但這很枯燥,需要我不斷地使用腳本。如何讓Python知道你正在工作的目錄
我只是希望有一個更優雅的方式來做到這一點?任何幫助,將不勝感激。
我有一個程序,我寫了一個目錄中的所有文件,然後查找帶有標誌的文件,然後將它們輸入到不同的程序中。它工作的很好,我現在唯一想做的事情就是把腳本放在一個盒子的一個位置上,然後讓它知道要查看我當前作爲工作目錄的目錄。目前,我所做的只是將腳本mv到我正在工作的任何目錄中,然後從那裏調用它,但這很枯燥,需要我不斷地使用腳本。如何讓Python知道你正在工作的目錄
我只是希望有一個更優雅的方式來做到這一點?任何幫助,將不勝感激。
怎麼樣
import os
loc = os.getcwd()
的__ 文件 __對象可以返回這樣的信息:
import os
os.path.dirname(__file__)
這會給您當前的*文件*處於可能不是目錄你當前的目錄。 –
對,我誤解了原來的問題。此外,因此,這必須被稱爲形式__within__文件才能正常工作。 – skeryl
如果您習慣通過工作目錄作爲參數傳遞給腳本時,以下方法將起作用。
#!/usr/bin/env python
import sys
import os
workingDir = sys.argv[1]
os.chdir (workingDir)
# Your code here
'os.getcwd()'好得多。 –
爲什麼? os.getcwd()獲取當前的工作目錄,但我無法理解這將如何幫助運行代碼在本地運行在不同的子目錄中。 – Spade
聽起來像一個完美的使用爲os.walk()
從幫助的例子是一個很好的起點:
import os
from os.path import join, getsize
for root, dirs, files in os.walk('python/Lib/email'):
print root, "consumes",
print sum(getsize(join(root, name)) for name in files),
print "bytes in", len(files), "non-directory files"
if 'CVS' in dirs:
dirs.remove('CVS') # don't visit CVS directories
謝謝!這很簡單... –