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 == 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.readlines(): #這是for循環內部將h對象做成一個迭代器\
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')
print(h.tell())#光標位置
print(h.read(3))
print(h.tell())

print(h.seek(0))
print(h.read(4))
print(h.seek(0))


import sys,time
for i in range(30):
sys.stdout.write("*")
sys.stdout.flush()
time.sleep(0.1)

import sys,time
for i in range(30):
print('@', end='', flush=True)
time.sleep(0.1)


h.close()


#******************************************

h_read = open('小重山', 'r', encoding='utf-8')
h_write = open('小重山2', 'w', encoding='utf-8')

number = 0
for line in h_read:
number += 1
if number ==5:
line = ''.join([line.strip(), 'hello\n'])
h_write.write(line)


h.close()

#**************************************************


with open('小重山', 'r') as h
h.readline(3)
h.read(4)
print(h)
























posted @ 2020-02-21 14:17  chiy  阅读(299)  评论(0编辑  收藏  举报