我想讀取特定目錄下的所有文件的內容。我發現如果路徑名不是以/
結尾,那麼我的代碼將不起作用(將會產生I/O異常,因爲pathName+f
無效 - 在中間缺少/
)。下面是一個代碼示例,以顯示它工作時,當它不工作,優雅的方式來檢查Python 2.7中有效的文件目錄路徑
實際上,我可以檢查如果pathname採用的endsWith與/
結束,如果更優雅的解決方案,只是不知道什麼時候一個全名串連路徑和文件名?
我的要求是,我想給輸入pathName更靈活,以\
結尾,而不是以\
結束。
使用Python 2.7。
from os import listdir
from os.path import isfile, join
#pathName = '/Users/foo/Downloads/test/' # working
pathName = '/Users/foo/Downloads/test' # not working, since not ends with/
onlyfiles = [f for f in listdir(pathName) if isfile(join(pathName, f))]
for f in onlyfiles:
with open(pathName+f, 'r') as content_file:
content = content_file.read()
print content
爲什麼你同時使用'os.path.join(pathName,f)'和'pathName + f'? – Blender
感謝@Blender,投票。 –