Python智闡8-文件和目錄操作

Python智闡8-文件和目錄操作

本篇主要介紹文件目錄、文件的一些操作方法。

其中目錄的操作需要引入os模塊:

import os

操作文件和目錄的函數一部分放在os模塊中,一部分放在os.path模塊中。

1、目錄操作方法

1.1 查看當前目錄

import os
print(os.getcwd()) #查看當前目錄

輸出:

>>>D:\\Code

1.2 返回指定目錄下的所有文件

import os
path = r"D:\\Code"
print(os.listdir(path))

會以列表的形式,返回所有文件

輸出:

>>>['.idea', '4.py', 'log', 'test.txt', 'venv', '函數.py', '基本數據類型.py','文件讀寫.py', '輸入和輸出.py'] 

1.3 目錄創建、重命名、刪除

import os
path = r"D:\\Code"
# 在當前目錄D:\\Code下創建目錄
os.mkdir("test") #方式1:直接創建test
os.mkdir(r"D:\\Code\\test") #方式2:輸入完整目錄進行創建
# 重命名剛剛創建的目錄
os.rename("test", "testpy")
# 刪掉剛剛創建的目錄
os.rmdir("testpy") #方式1:直接刪除test
os.rmdir(r"D:\\Code\\testpy") #方式2:輸入完整目錄進行刪除

1.4 判斷目錄是否存在

import os
path = r"D:\\Code"
#判斷是否是目錄
print(os.path.isdir(path))
#判斷目錄是否存在
print(os.path.exists(path))

1.5 目錄拼接、拆分

import os
#目錄拼接
newPath = os.path.join(r"D:\\Code\\test", 'test.txt')
print(newPath)
#目錄拆分
path = os.path.split(r"D:\\Code\\test\\test.txt")
print(path)
#獲取文件擴展名
txtName = (os.path.splitext(r"D:\\Code\\test\\test.txt"))
print(txtName)

print(txtName[1])

輸出:

>>>
>>>D:\\Code\\test\\test.txt
>>>('D:\\\\Code\\\\test', 'test.txt')
>>>('D:\\\\Code\\\\test\\\\test', '.txt')
>>>.txt

2、打開文件/關閉文件

文件的打開和關閉用open()和close()來實現

open()函數主要參數介紹:

參數file:文件路徑

參數mode:打開方式,常用的mode有

r 以只讀的方式打開文件,文件讀取光標會放到文件的開頭

w 打開一個文件,只用於寫入,如果文件存在則打開文件,寫入的內容會覆蓋原內容,如果文件不存在,則新生成一個文件。

a 打開一個文件用於追加。如果文件存在,則文件讀寫光標會放到文件的末尾,新寫入的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。

+ 打開一個文件進行更新(可讀可寫)。

b 二進制模式。

還有r+、w+、a+、rb、wb、ab等。可自行參考官方文檔。

參數encoding:編碼方式 (encoding="utf-8"一般都是utf-8)

errors:錯誤處理 (errors="ignore"表示忽略錯誤)

path = r"D:\\Code\\test.txt"
f = open(path, "r")
#f = open(path, "r", encoding="utf-8", errors="ignore")
f.close()

3、讀寫文件

3.1 read() 讀取文件內容

path = r"D:\\Code\\test.txt"
f = open(path, "r")
txt = f.read() #讀取文件全部內容
print(txt)
f.close()

3.2 read(n) 讀取指定字符數

path = r"D:\\Code\\test.txt"
f = open(path, "r")
txt = f.read(2) #讀取指定字符 -1 表示讀取全部內容
print(txt)
f.close()

3.3 readline() 讀取整行

path = r"D:\\Code\\test.txt"
f = open(path, "r")
txt = f.readline() #讀取整行
print(txt)
f.close()

3.4 readlines() 讀取所有行並返回列表

path = r"D:\\Code\\test.txt"
f = open(path, "r")
txt = f.readlines() #讀取所有行並返回列表
print(txt)
f.close()

輸出:

>>>['hello 智數分析1!\\n', 'hello 智數分析2!\\n', 'hello 智數分析3!\\n', 'hello 智數分析4!']

3.5 寫文件

內容先寫入內存緩衝區,然後再由內存緩衝區寫入到文件。

path = r"D:\\Code\\test.txt"
f = open(path, "a")
f.write("hello python") #將信息寫入內存緩衝區
f.flush() #刷新內存緩衝區
f.close()

4、文件讀寫異常

前面已經介紹過了python異常處理,我們在處理文件時也經常會遇到一些異常,會導致f.close()無法執行。

如果也用try......except......finally方式去處理,程序代碼會比較複雜。

try:
f = openr(r"D:\\Code\\test.txt", 'r')
print(f.read())
finally:
if f:
f.close()

Python提供了with語句來幫我們自動調用close()方法,以後我們要處理文件時,都可以用以下這種寫法。

path = r"D:\\Code\\test.txt"
with open(path, "r") as f:
print(f.read())


分享到:


相關文章: