30天python基礎(九 檔案處理 )

2021-10-07 20:07:03 字數 3795 閱讀 8781

1. ⽂件處理

⽂件的處理包括讀⽂件和寫⽂件,讀寫⽂件就是請求作業系統開啟⼀個⽂件物件,然後,通過作業系統提供的接⼝從這個⽂件物件中讀取資料(讀⽂件),或者把資料寫⼊這個⽂件物件(寫⽂件)。

1.1 ⽂件讀取

⽂件讀取可分為以下步驟:

#開啟⽂件

fp =

open

('qfile.txt'

,'r'

,encoding=

'utf-8'

)#讀取⽂件全部內容

#content = fp.read()

#print(content)

#讀取指定字元數,包括⾏尾的換⾏符\n

# print(fp.read(20))

#讀取⼀⾏

# print(fp.readline(5)) #讀取指定字元數

# print(fp.readline()) #讀取⼀整⾏,直到碰到⼀個\n

#讀取所有⾏,返回列表

# print(fp.readlines())

#關閉⽂件

fp.close(

)

#由於⽂件讀寫時都有可能產⽣ioerror,⼀旦出錯,後⾯的f.close()就不會調⽤。

# 所以,為了保證⽆論是否出錯都能正確地關閉⽂件,我們可以使⽤try ...

finally來實現:

# try:

# fp = open('qfile.txt','r',encoding='utf-8')

# print(fp.readlines())

# finally:

# fp.close()

#可以簡寫為:

#with語句會⾃動調⽤close⽅法關閉⽂件

with

open

('qfile.txt'

,'r'

,encoding=

'utf-8'

)as fp:

print

(fp.readline(

))

#fread()和freadlines()會⼀次讀⼊⽂件全部內容,如果⽂件太⼤,會直接耗盡記憶體

的,因為⽂件物件可迭代,所以可以⽤for迴圈遍歷⽂件讀取

with

open

('qfile.txt'

,'r'

,encoding=

'utf-8'

)as fp:

for line in fp:

print

(line.strip())

#注意⽆論是read、readline、readlines都會

讀⼊⾏末的\n,所以需要⼿動剔除\n

1.2 寫⽂件

path =

"file11.txt"

#1.開啟⽂件

f =open

(path,

"w",encoding=

"utf-8"

)#2.寫⼊內容,將內容寫⼊到緩衝區

#不會⾃動換⾏,需要換⾏的話,需要在字串末尾新增換⾏符

f.write("whatever is worth doing is worth doing well該⾏很驕傲很關鍵

\n")

#3.重新整理緩衝區【加速資料的流動,保證緩衝區的流暢】

f.flush(

)#4.關閉⽂件 關閉⽂件也會重新整理緩衝區

f.close(

)#簡寫⽅式:可以不⽤⼿動調⽤close

with

open

(path,

"w",encoding=

"utf-8"

)as f1:

f.write("whatever is worth doing is worth doing well該⾏很驕傲很關

鍵")

1.3 移動⽂件指標

⽂件是順序向後讀寫的,如果想要移動⽂件指標,可以使⽤seek⽅法:

file_obj.seek(offset,whence=0)

功能:移動⽂件指標

引數:offset 是偏移量,正數表示從⽂件開頭向⽂件末尾移動,負數相反。

whence : ⽂件指標的位置,可選引數,值可以是

seek_set or 0 表示⽂件開頭位置,是預設值

seek_cur or 1 表示當前位置(不能使⽤)

seek_end or 2 ⽂件末尾位置(不能使⽤)

返回值:⽆

#1.txt內容:hello world

with

open

('1.txt'

,'r'

,encoding=

'utf-8'

)as fp:

fp.seek(5)

#移動到hello後的空格位置

print

(fp.read(3)

)#wo

fp.seek(0)

#移動到開頭

print

(fp.read(5)

)#hello

print

(fp.tell())

#tell()顯示當前指標位置

2.csv⽂件操作

逗號分隔值(comma-separated values,csv),其⽂件以純⽂本形式儲存**資料(數字和⽂本),⽂件的每⼀⾏都是⼀個資料記錄。每個記錄由⼀個或多個字段組成,⽤逗號分隔。使⽤逗號作為字段分隔符是此⽂件格式的名稱的**,因為分隔字元也可以不是逗號,有時也稱為字元分隔值。

在windows下,csv⽂件可以通過記事本,excel,notepad++,editplus等開啟

import csv

with

open

(r'csv\winequality-red.csv'

)as fp:

#1.開啟⽂件

#delimiter指定分隔符

csv_reader = csv.reader(fp,delimiter=

';')

#2.獲取csv讀取器

header =

next

(csv_reader)

#獲取第⼀⾏的標題

print

(header)

for line in csv_reader:

#3.遍歷所有的⾏

print

(line)

2.2 寫⼊csv

import csv

l1 =[[

1,2,

3],[

4,5,

6],[

7,8,

9]]#開啟⽂件時,要新增newline=''引數,否則會多⼀個空⾏

with

open

('1.csv'

,'w'

,newline='')

as fp:

#1.開啟⽂件

#delimiter='\t'指定資料分隔符

csv_writer = csv.writer(fp,delimiter=

'\t'

)#2.獲取writer

for line in l1:

csv_writer.writerow(line)

#3.寫⼊⽂件

python基礎(九) 檔案

file open file path,mode r 其中file path為檔案路徑 絕對路徑和相對路徑都是可以的 mode是檔案的開啟方式。open 函式會返回乙個檔案物件,我們可以通過這個檔案物件來操作檔案。file.flush 重新整理緩衝區。file.close 關閉檔案。引數值開啟方式 ...

python基礎九 檔案和異常

讀取整個檔案 with open pi digits.txt as file object contents file object.read print contents.rstrip 注 with的用法 讓檔案妥善地開啟和關閉。rstrip 函式 消除空行 使用檔案的內容 with open t...

python學習(九) 檔案操作

1 檔案開啟 1.開啟檔案,得到檔案控制代碼並賦值給乙個變數 f open a.txt r encoding utf 8 預設開啟模式就為r open預設編碼為gbk r,w,a 2.通過控制代碼對檔案進行操作 data f.read 3.關閉檔案 f.close 1 讀取 f.readable 是...