1. 程式人生 > >python之IO目錄處理

python之IO目錄處理

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 Edition
8 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 os
9 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() 目錄分割

這個函式方法可以把切割路徑,最後一層目錄獨立成為一個元素,返回結果是含有兩個元素的元組。

引數說明:

  1. PATH指一個檔案的全路徑作為引數:
  2. 如果給出的是一個目錄和檔名,則輸出路徑和檔名
  3. 如果給出的是一個目錄名,則輸出路徑和為空檔名

實際上,該函式的分割並不智慧,它僅僅是以 "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))

結果如下: