python筆記之檔案的基本操作和os模組

2021-08-19 19:17:48 字數 4133 閱讀 6524

語法: open(檔案路徑,訪問模式,encoding=編碼格式)

檔案路徑:

1. 指定路徑

「c:\path\file.txt」

r」c:\path\file.txt」

(windows下用」\」來分隔路徑

unix下用」/」分隔路徑)

2. 不指定路徑

file.txt,會在程式執行的目錄下建立

可以使用os模組改變路徑

編碼格式:

防止中文亂碼

gbk

utf-8

檔案的常用方法:

.read() 方法讀取檔案的全部內容

.seek() 移動指標

.write() 向檔案寫入字串

.readline(num) num給數字幾,就輸出幾個字元

.readline() 按行,一行一行的讀取檔案資料

.readlines() 按行讀取全部內容,返回的是乙個檔案資料列表,每一行是列表的乙個元素

對於唯讀模式(r)來說,如果檔案不存在則報錯:

file = open("text.txt","r") #text.txt  並不存在  

file.close() #呼叫完需要將開啟的檔案關閉

執行結果:

traceback (most recent call last):

file "g:/pycharm_/python_basic/day08/demo01.py", line

1, in

file = open("text.txt","r")

filenotfounderror: [errno 2] no such file

ordirectory: 'text.txt'

對於寫入模式(w)來說,如果檔案不存在,仍會報錯,但會建立乙個新的檔案,如果檔案已存在將會覆蓋原檔案.

例如,向c盤乙個檔案寫入」hi!」

file = open(r"c:\users\123\1.txt","w")

file.write("hi!")

file.close()

執行後,會在「c:\users\123\1.txt」寫入「hi!」

我們使用.read()來讀取剛才寫進的內容

file = open(r"c:\users\123\1.txt","r")

print(file.read())

file.close()

執行結果:

hi

!

接下來我們在上述內容後追加內容」good morning!」

#向文字內追加內容  

file = open(r"c:\users\123\1.txt","a",encoding="utf-8")

file.write(" \ngood morning!")

file.close()

#輸入文字裡的內容

file1 =open(r"c:\users\123\1.txt","r",encoding="utf-8")

print(file1.read())

執行結果:

hi

!good

morning

!

如果我們需要一行一行的輸出,可以使用.readline() 或 .readlines()

使用.readline()

file1 = open(r"c:\users\123\1.txt","r",encoding="utf-8")

print(file1.readline())

print(file1.readline())

執行結果:

hi!

good morning!

使用.readlines()會生成乙個列表,所以下面的內容中,我們把列表遍歷輸出

#向文字內追加內容

file1 = open(r"c:\users\123\1.txt","r",encoding="utf-8")

# print(file1.readlines()) #使用.readlines() 會生成乙個列表

data = file1.readlines()

i = 1

for nr in data:

print("第{}行內容為{}".format(i,nr))

i=i+1

執行結果:

第1行內容為hi

!第2行內容為good

morning

!

注意:考慮到安全因素,檔案呼叫完記得使用 file.close()將檔案關閉.

.read() 和 .seek()

當我們使用 .read()輸出完內容後,再次呼叫輸出內容為空,是因為指標這時指向了最後,如果我們想要再次輸出的話可以使用.seek()來改變指標的位置,從而再次輸出.

file1 = open(r"c:\users\123\1.txt","r",encoding="utf-8")

print(file1.read())

print(file1.read())

我們可以看到執行結果,只有一次內容輸出

hi!

good morning!

使用.seek()後

file1 = open(r"c:\users\123\1.txt","r",encoding="utf-8")

print(file1.read())

file1.seek(0)

print(file1.read())

執行結果:

hi!

good morning!

hi!good morning!

.readline(num)的用法

例如,我們輸出該檔案的第乙個字元

file1 = open(r"c:\users\123\1.txt","r",encoding="utf-8")

data1 = file1.readline(1)

print(data1)

執行結果:

h
安全的開啟檔案(自動呼叫.close())
with open("test.txt","w",encoding="utf-8") as f:

f.write("測試寫入")

with open("test.txt","r",encoding="utf-8") as f:

for line in f:

print(line,end="")

執行結果:

測試寫入
利用os模組對檔案的一些基本操作

使用內建模組時需要先引用

所以使用: import 引用

對路徑可以加\表示是路徑,也可以在前面加r或者r表示

import os

os.mkdir(r"c:\users\123\one") #在某個路徑下建立資料夾,對c盤操作可能沒有許可權,會報錯

print(os.getcwd()) #獲取程式執行的當前目錄

print(os.chdir(r"e:\1111")) #改變到某個目錄下

print(os.getcwd())

os.chdir("../") #切換到上級目錄

print(os.getcwd())

a=os.listdir(r"e:\1111") #獲取指定目錄下的檔案列表

print(a)

os.rmdir(r"e:\1111") #刪除空的資料夾

import shutil

shutil.rmtree(r"e:\1111\444") #刪除非空的資料夾

python的操作步驟 python基本操作

一 python介紹 1 什麼是python python 是乙個高層次的結合了解釋性 編譯性 互動性和面向 物件的指令碼語言。2 什麼是物件導向 這意味著python支援物件導向的風格或 封裝在 物件的程式設計技術。3 什麼是解釋型別 這意味著開發過程中沒有了編譯這個環節。4 什麼是動態型別 5 ...

python模組之heapq模組(堆)基本操作

1 匯入模組 import heapq 匯入模組2 heapq 提供的常用方法 heapq.heapify head 將陣列轉化成堆 刪除堆頂,也就是最小值 往堆中增元素 heapq.nlargest n,head 查堆中最大的n個數 heapq.nsmallest n,head 查堆中最小的n個數...

python基本之檔案

恢復內容開始 一 檔案處理流程 開啟檔案,得到檔案控制代碼並賦值給乙個變數 通過控制代碼對檔案進行操作 關閉檔案 二 基本操作 1.檔案操作基本流程。f open chenli.txt 開啟檔案 first line f.readline print first line first line 讀一...