文件名與路徑
文件都是按照目錄來組織存放的。每一個運行着的程序都有一個當前目錄,也就是用來處理絕大多數運算和操作的默認目錄。
1.比如當你打開一個文件來讀取內容的時候,Python 就從當前目錄先來查找這個文件了。
提供函數來處理文件和目錄的是 os 模塊(operating system縮寫)
>>> import os
>>> current = os.getcwd()
>>> current
'/Users/dianze/python'
當前路徑為/Users/dianze/python
2.要找到一個文件的絕對路徑,可以用 os.path.abspath:
>>> os.path.abspath('output.txt')
'/Users/dianze/python/output.txt'
3.另外,os.path 提供了其他一些函數,可以處理文件名和路徑。比如 os.path.exists 會檢查一個文件或者目錄是否存在:
>>> os.path.exists('output.txt')
True
>>> os.path.exists('output3.txt')
False
4.os.path.isdir 可以來檢查一下對象是不是一個目錄,而os.path.isfile 就可以檢查對象是不是一個文件了。
>>> os.path.isdir('/user')
False
>>> os.path.isfile('output.txt')
True
5.os.listdir 會返回指定目錄內的文件(以及次級目錄)列表。
>>> import os
>>> current = os.getcwd()
>>> current
'/Users/dianze/python'
>>> os.listdir(current)
['output1.txt', 'c.py', 'output.txt']
6.下面這個例子中,walks 這個函數就遍歷了一個目錄,然后輸出了所有該目錄下的文件的名字,並且在該目錄下的所有子目錄中遞歸調用自身。
>>> def walk(dirname):
... for name in os.path.listdir(dirname):
... path = os.path.join(dirname, name)
... if os.path.isfile(path):
... print(path)
... else:
... walk(path)
...
例子中的os.path.join 接收一個目錄和一個文件名做參數,然后把它們拼接成一個完整的路徑。
結束。