python 文件操作
#_author: "Chiy Hua"
#date: 2020/1/24
对文件操作流程
打开文件,得到文件句柄并赋值给一个变量
通过句柄对文件进行操作
关闭文件
能調用方法的一定是方法
li = [1,2,3]
li.append('2')#調用append方法
基本操作
f = open('lyrics') #打开文件
first_line = f.readline()
print('first line:',first_line) #读一行
print('我是分隔线'.center(50,'-'))
data = f.read()# 读取剩下的所有内容,文件大时不要用
print(data) #打印文件
f.close() #关闭文件
打开文件的模式有:
r,只读模式(默认)。
w,只写模式。【不可读;不存在则创建;存在则删除内容;】
a,追加模式。【可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
r+,可读写文件。【可读;可写;可追加】在文件後面添加
w+,写读--先清空在寫再讀
a+,同a
"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
rU
r+U
"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
rb
wb
ab
seek :調整光標位置
tell:光標位置
flush:把內存的內容存到硬盤,類似於進度條的效果
truncate: 截斷,截取一部分內容
========= ===============================================================
Character Meaning
--------- ---------------------------------------------------------------
'r' open for reading (default)
'w' open for writing, truncating the file first
'x' create a new file and open it for writing
'a' open for writing, appending to the end of the file if it exists
'b' binary mode
't' text mode (default)
'+' open a disk file for updating (reading and writing)
'U' universal newline mode (deprecated)
========= ===============================================================
eval :還原類型如:a=eval(a)
with語句
#***********************讀*****************
h = open('小重山', 'r', encoding='utf-8')#打開文件
date = h.read()#讀操作
print(date)
h.close()#關閉
#*******************************************
#***********************寫*****************
h = open('小重山2', 'w', encoding='utf-8')#打開文件,如果沒有會幫忙創建一個文件
date = h.write('請你輕輕留下來\n')#寫操作會把原內容清空替換為‘請你輕輕留下來’,返回一個字符數
h.write('書香之外')#不會覆蓋第一次操作,因為文件已經打開還沒有關閉,會緊接著存儲
print(date)
h.close()#關閉
#*******************************************
#***********************文件添加*****************
h = open('小重山2', 'a', encoding='utf-8')#打開文件,如果沒有會幫忙創建一個文件,a代表append追加
date = h.write('\n美麗的天籟\n')#寫操作會把原內容清空替換為‘請你輕輕留下來’,返回一個字符數
h.write('烏蒙山連著山外山')#不會覆蓋第一次操作,因為文件已經打開還沒有關閉,會緊接著存儲
print(date)
h.close()#關閉
#*******************************************
#***********************讀行*****************
h = open('小重山', 'r', encoding='utf-8')#打開文件
#date = h.readline()#讀操作
#date = h.readlines()#讀操作
#print(date)
for date in h:
print(date.strip())
h.close()#關閉
#*******************************************
#***********************讀行*****************
h = open('小重山', 'r', encoding='utf-8')#打開文件
#date = h.readline()#讀操作
#date = h.readlines()#讀操作
#print(date)
num=0
for date in h.readlines():
num +=1
if num==6:
print(date.strip(), 'kkkkk')
else:
print(date.strip())
h.close()#關閉
#*******************************************
#***********************讀行*****************
h = open('小重山', 'r', encoding='utf-8')#打開文件
#date = h.readline()#讀操作
#date = h.readlines()#讀操作
#print(date)
num=0
for date in h.readlines():
num +=1
if num==6:
# date = date.strip()+'ddddd'
date = ''.join([date.strip(), 'ffffff'])
print(date.strip())
h.close()#關閉
#*******************************************
#***********************讀行*****************
h = open('小重山', 'r', encoding='utf-8')#打開文件
#date = h.readline()#讀操作
#date = h.readlines()#讀操作
#print(date)
num=0
for date in h: #這是for循環內部將h對象做成一個迭代器
num += 1
if num ==