python笔记之文件的基本操作和os模块
文件的操作
語法: open(文件路徑,訪問模式,encoding=編碼格式)
文件路徑:
1. 指定路徑
“C:\path\file.txt”
r”C:\path\file.txt”
(windows下用”\”來分隔路徑
unix下用”/”分隔路徑)
2. 不指定路徑
file.txt,會在程序運行的目錄下創建
可以使用os模塊改變路徑
打開文件的三種訪問模式
r:只讀模式,默認
w:寫入模式(覆蓋)
a:追加模式
wb:以二進制形式打開一個文件用于寫入一般用于非文本文件,圖片
編碼格式:
防止中文亂碼
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 <module>file = open("text.txt","r") FileNotFoundError: [Errno 2] No such file or directory: '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()來改變指針的位置,從而再次輸出.
我們可以看到運行結果,只有一次內容輸出
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)的用法
例如,我們輸出該文件的第一個字符
運行結果:
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表示
總結
以上是生活随笔為你收集整理的python笔记之文件的基本操作和os模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python笔记之函数参数(缺省参数,命
- 下一篇: python笔记之正则表达式