python基金会主席入门教程_Python基金会-文件IO操作,python,基础
函數
功能
open
打開文件
read
讀取文件
write
寫文件
close
關閉文件
readline
行讀取
readlines
多行讀取
open方法
open方法:
打開一個文件,返回一個文件對象(流對象)和文件描述符,打開文件失敗則拋異常
三步曲:創建文件,打開文件,關閉文件(好像是廢話
^_^
),但是關閉文件是一個很好的習慣,否則文件描述符可能會被消耗殆盡
直接上代碼:
f = open('test', 'r') #文件對象
# windows <_io.textiowrapper name="test" mode="r" encoding="cp936">
# linux <_io.textiowrapper name="test" mode="r" encoding="UTF-8">
#windows默認使用的編碼與linux不同
print(f.read()) #讀取文件
f.close() #關閉文件
文本訪問的模式:
1.文本模式
2.二進制模式
open參數
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
open參數之file:文件對象
file:打開或要創建的文件名,不指定路徑的話則表示當前路徑
mode模式:
模式描述字符
功能
r
缺省模式,只讀
w
只寫打開,文件不存在則創建
x
創建并寫入一個新文件,文件已存在則報錯
a
只寫打開,追加內容
b
二進制模式
t
默認模式,文本模式
+
讀或寫打開后,使用+來增加缺失的讀或寫的能力
對于IO操作來說,大致以一分為兩類:
只讀r
只寫w,x,a
增加缺失能力
r模式: f = open('filename', 'r')
- 只讀打開文件,如果使用write方法打開文件對象會跑異常
- 如果打開的文件對象不存在,則會拋FileNotFoundError異常
w模式:f = open('filename', 'w')
- 使用只寫模式打開文件對象,若對文件進行讀操作則會拋異常
- 如果文件對象不存在,則直接創建文件
- 如果文件對象存在,則會清空文件內容
x模式:f = open('filename', 'x')
- 打開的文件對象必須不存在,否則拋FileExistsError異常
- 創建文件,并且使用只寫模式打開文件對象
a模式: f = open('filename', 'a')
- 文件存在,追加模式操作文件,并且是只寫模式
- 文件不存在就會創建文件,并且使用只讀模式追加操作文件
wxa模式都可以產生新文件
w不管文件存在與否,都會生成全新內容的文件
a不管文件是否存在,都能在打開的文件尾部追加
x必須要求文件事先不存在,自己要造一個新文件
文本模式:t(text模式)
字符流:將文件內容按照一定的編碼規范來理解,按照字符操作。open方法
的模式模式就是rt
二進制模式:b(byte模式)
字節流:將文件按照字節理解,與編碼規范無關。字節操作使用bytes類型
+模式:補充缺失的讀或寫權限
輔助功能:為r,w,a,x提供寫或者讀的功能
注意點:x模式不能單獨使用,需配合以上四種模式使用
open參數之encoding:編碼,僅文本模式使用
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
None表示缺省編碼,依據操作系統而定:
f = open('test', 'w')
f.write('啊')
f.close()
windows下默認為GBK編碼(0xB0A1),Linux下缺省UTF-8(0xE5 95 8A)
文件指針
mode=r,指針起始位置在0
mode=a,指針起始位置為EOF
>>> f = open('./files/test.txt', 'a') #test.txt文件事先不存在
>>> f.write('啊abc') #文件描述符調用write方法寫入內容
>>> f.close() #關閉文件對象
>>> cat ./files/test.txt
啊abc
>>> f1 = open('./files/test.txt', 'r') #只讀模式
>>> f1.read()
'啊abc'
>>> f = open('./files/test.txt', 'wb+')
>>> f.write(b'abc')
>>> print(f.tell())# 顯示文件指針當前所在
3
>>> f.read() #因為文件指針在文件末尾,因此讀取文件時不能讀取到內容
b''
>>> f.close()
>>> f = open('./files/test.txt', 'rb+')
>>> f.read()
b'abc'
read方法
read(size=-1): size表示讀取多少個字符或字節;負數或者None表示讀取到EOF
>>> f = open('filename', 'w+')
>>> f.write('hello world')
>>> f.close()
>>> f = open('filename')
>>> f.read(1) #讀取一個字符
>>> f.read(3) #再讀取兩個字符
>>> f.close()
write方法
filename = 'o:/test.txt'
f = open(filename, 'w+')
lines = ['abc', '123\n', 'magedu'] # 需提供換行符
# for line in lines:
# f.write(line)
f.writelines(lines)
f.seek(0) # 回到開始
print(f.read())
f.close()
文件的遍歷
#f = open('filename', 'rt+')
with open(filename) as f:
f.write('\n'.join(map(str, range(101, 120))))
with open(filename) as f:
for line in f: # 文件對象時可迭代對象,逐行遍歷
print(line.encode()) # 帶換行符
總結
以上是生活随笔為你收集整理的python基金会主席入门教程_Python基金会-文件IO操作,python,基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二叉排序树与文件操作的设计与实现_堆排序
- 下一篇: 密封槽设计标准_哈尔滨轴承 | 超全面机