python之IO目錄處理
阿新 • • 發佈:2018-12-01
IO目錄處理
在使用io常用函式之前,必須要在py檔案頭部import os。os是(Operation system)的縮寫,意思就是系統操作。
1. 建立刪除目錄
1 #!/usr/bin/python3 2 # -*- coding: utf-8 -*- 3 # @Time :2018/11/29 15:27 4 # @Author :Yosef 5 # @Email :[email protected] 6 # @File: :class32.py 7 # @Software :PyCharm Community Edition8 import os 9 ''' 10 建立目錄,而非建立檔案 11 建立檔案,參考open中的model,刪除檔案則用到os.remove 12 ''' 13 # os.mkdir("../python_io/") # make directory 建立一個目錄 14 # os.rmdir("../python_io") # remove directory 刪除一個目錄 15 16 file = open("../python_io/testio.txt", "w", encoding="UTF-8") # 建立檔案不要加上不存在的目錄,否則報錯;目錄存在則建立檔案成功 17 file.close()18 os.remove("../python_io/testio.txt")
我建立刪除目錄,檔案都是成功的。筒子們自己試一下。
2. 尋找目錄/檔案路徑
1 #!/usr/bin/python3 2 # -*- coding: utf-8 -*- 3 # @Time :2018/11/30 10:26 4 # @Author :Yosef 5 # @Email :[email protected] 6 # @File: :class33.py 7 # @Software :PyCharm Community Edition 8 import os9 path=os.getcwd() #E:\python_workspace\StudyPython\os 10 print(path) 11 12 path=os.path.dirname(__file__) #E:/python_workspace/StudyPython/os 13 print(path) 14 15 path=os.path.realpath(__file__) # E:\python_workspace\StudyPython\os\class33.py 16 print(path) 17 18 path=os.path.basename(__file__) # class33.py 19 print(path)
結果對比:
3. 目錄路徑的其他操作
3.1 檔案路徑拼接
os.path.join(a,b) a:py檔案的同級目錄,b新建的檔案目錄。新建只能一級一級的新建。拼接路徑的時候,不能跨過不存在的路徑,直接去新建一層的目錄。
1 import os 2 3 new_file = os.path.join("sub_001", "test") # join(a,b) 4 print(new_file) 5 os.mkdir(new_file)
結果:
3.2 os.path.isdir / os.path.isfile 判斷是否是目錄,是否是檔案
1 #!/usr/bin/python3 2 # -*- coding: utf-8 -*- 3 # @Time :2018/11/30 14:13 4 # @Author :Yosef 5 # @Email :[email protected] 6 # @File: :class34.py 7 # @Software :PyCharm Community Edition 8 import os 9 path = os.getcwd() 10 print(os.path.isdir(path)) 11 12 file = os.getcwd()+"/class34.py" 13 print(os.path.isfile(file))
3.3 os.path.split() 目錄分割
這個函式方法可以把切割路徑,最後一層目錄獨立成為一個元素,返回結果是含有兩個元素的元組。
引數說明:
- PATH指一個檔案的全路徑作為引數:
- 如果給出的是一個目錄和檔名,則輸出路徑和檔名
- 如果給出的是一個目錄名,則輸出路徑和為空檔名
實際上,該函式的分割並不智慧,它僅僅是以 "PATH" 中最後一個 '/' 作為分隔符,分隔後,將索引為0的視為目錄(路徑),將索引為1的視為檔名,如:
>>> import os
>>> os.path.split('C:/soft/python/test.py')
('C:/soft/python', 'test.py')
>>> os.path.split('C:/soft/python/test')
('C:/soft/python', 'test')
>>> os.path.split('C:/soft/python/')
('C:/soft/python', '')
3.4 os.listdir() 列出目錄下所有檔名
這個函式的作用是列出目錄下所有的檔案,返回結果是列表。
1 import os 2 path = os.getcwd() 3 # path = os.path.realpath(__file__) 4 # print(os.path.split(path)) 5 print(os.listdir(path))
結果如下: