D17-06 文件操作

处理流程:

1、打开文件,得到文件句柄并复制给一个变量

2、通过句柄对文件进行操作

3、关闭文件

基本操作

r 只读
w 只写
a 只追加
下列代码标红部分可更改模式
f = open('梁静茹','r',encoding='gbk') #需要修改字符编码,windows 默认gbk编码
data = f.read()
print(data)
f.close()

  

  readline( ) 一次读一行

line1 = print(f.readline(),end='') #读一行 end = ''在读取过程中默认是两行中间有空格,end=''不会出现空行

 

readlines 读取后为列表

f = open('梁静茹','r',encoding='gbk') #需要修改字符编码,windows 默认gbk编码
data = f.readlines()
print(data)
f.close()
输出结果
['梁静茹《勇气》歌词\n',。。。。。]

  

w 只读模式 如果文件存在会把当前文件清空,然后进行其他的操作。如果文件不存在,会新建一个新的文件

f = open('梁静茹','w',encoding='gbk')
f.write('112312313\n') #需要加入换行符
f.write('dfadff\n')
f.writable()
f.writelines(['d\n','d''dfdf']) #传一个列表,写的类型一定是str格式,不能写入其他格式,要用双引号
f.close()
输出结果 文件内容被修改为
112312313
dfadff
d
ddfdf1

 

追加操作 a

f = open('梁静茹','a',encoding='gbk') #追加的方式写到文件最后
f.write('\ndddd1111111111111')
f.close()

  

f = open('梁静茹','r+',encoding='gbk') #既能读又能写
data = f.read()
print(data)
f.write('d')
f.close()

  

所有的文件没有修改的说法,只是全部覆盖掉

 

修改文件中的部分内容

 

src_f=open('xxx','r',encoding='utf-8') #打开文件读取
data = src_f.readlines()
src_f.close()

dst_f=open('xxx_new','w',encoding='utf-8') #新建文件,无文件名会重新创建
dst_f.write(data[0])  #因为data输出的为列表,data[0]用切片取第一个元素即为第一行
dst_f.close()
会出现一个和xxx相同的文件内容
里面包含内容 林海峰

  

与f = xxxx的效果一样

with open('a.txt','w') as f:    # 此方法不需要手动close文件 
    f.write('a\n2')   

 

从原文件中读取数据,写入新的文件,代码如下:

with open('xxx','r',encoding='utf-8') as src_f,\  #斜杠为截断符,在合适位置加然后回车即可换行
        open('xxx_new', 'w', encoding='utf-8') as dst_f:
    data = src_f.read()
    dst_f.write(data)

  

 

posted @ 2018-08-20 15:29  犀利的攻城狮  阅读(172)  评论(0)    收藏  举报