从零开始的Linux运维屌丝之路,资源免费分享平台   运维人员首选:简单、易用、高效、安全、稳定、社区活跃的开源软件
  • 首页
  • Python
  • 18、python文件处理、写入、读取、处理

18、python文件处理、写入、读取、处理

发布:蔺要红04-15分类: Python


文件操作分为、读、写、修改、
 

文件是以什么格式存储的、就要以什么格式读取
 

1、写模式,它是不能读的,如果用模式打开一个已经存在的文件,会清空以前的文件内容,重新写
   w+ 是读写内容,只要沾上w,肯定会清空原来的文件
2、r 读模式,只能读,不能写,而且文件必须存在
   r+ 是读写模式,只要沾上r,文件必须存在
3、a 追加模式,也能写,在文件的末尾添加内容
4、rb+、wb+、ab+,这种是二进制模式打开或者读取,一些音乐文件

写入:

w  写方式打开,只能写文件, 如果文件不存在,创建该文件;如果文件已存在,先清空,再打开文件 

 
f = open(file='1.txt',mode='w')
data = f.write("中国")
f.close()

f = open(file='2.txt',mode='w',encoding='utf-8')
data = f.write("中国")
f.close()

f = open(file='3.txt',mode='w',encoding='gbk')
data = f.write("中国")
f.close()

f = open(file='4.txt',mode='wb')
data = f.write("中国".encode('gbk'))
f.close()

f = open(file='5.txt',mode='wb')
data = f.write("中国".encode('utf-8'))
f.close()

读:
 

r   以文本模式读
rb  以二进制模式打开

#f = open(file='2.txt',mode='r',encoding='gbk')

f = open(file='2.txt',mode='r',encoding='utf-8')
data = f.read()
print(data)
f.close()

f = open(file='2.txt',mode='rb')
data = f.read()
print(data)
f.close()

# f = open(file='2.txt',mode='r')
# data = f.read()
# print(data)
# f.close()
 
读写

 
f = open(file='2.txt',mode='r+',encoding='utf-8')
data = f.read()
print("读取文件内容")
print(data)

f.write('\nnewline 1 ')
f.write('\nnewline 2 ')
print("再次读取文件内容")
print(f.read())  #没有读出结果的原因是,写入完成后,光标已经在文件最后一行了,所以打印读到的东西,没有内容
f.close()

D:\python\python.exe F:/运维笔记/python/第三章/文件读写r+.py
读取文件内容
中国
再次读取文件内容
#而此时2.txt里的内容改变为:

中国
newline 1 
newline 2 
 
写入修改、会覆盖之前的内容,重新写入
 
f = open(file='1.txt',mode='r+')
data = f.write("\n这是我用python写入的第2句话")
f.close()

f = open(file='2.txt',mode='r+',encoding='utf-8')
data = f.write("\n这是我用python写入的第2句话")
f.close()

f = open(file='3.txt',mode='r+',encoding='gbk')
data = f.write("\n这是我用python写入的第2句话")
f.close()

f = open(file='4.txt',mode='r+b')
data = f.write("\n这是我用python写入的第2句话".encode('gbk'))
f.close()

f = open(file='5.txt',mode='r+b')
data = f.write("\n这是我用python写入的第2句话".encode('utf-8'))
f.close()

#而此时所有的文本都会被清空、写入新的数据
#所有的文本内容为:
                                            #\n 为换行
这是我用python写入的第2句话                 #内容


写入追加、不会覆盖之前的内容,在文件后面追加内容
 
f = open(file='1.txt',mode='a')
data = f.write("\n这是我用python写入的第2句话")
f.close()

f = open(file='2.txt',mode='a',encoding='utf-8')
data = f.write("\n这是我用python写入的第2句话")
f.close()

f = open(file='3.txt',mode='a',encoding='gbk')
data = f.write("\n这是我用python写入的第2句话")
f.close()

f = open(file='4.txt',mode='ab')
data = f.write("\n这是我用python写入的第2句话".encode('gbk'))
f.close()

f = open(file='5.txt',mode='ab')
data = f.write("\n这是我用python写入的第2句话".encode('utf-8'))
f.close()

#此时文本内容为:

这是我用python写入的第2句话
这是我用python写入的第2句话
#-------------------------------------内容没有被清空、而是追加了写入的内容
 
文件操作的其他用法
 
>>> f = open('/root/root.txt','w')  #首先打开一个文件写入
>>> f.write('test1\n')
6
>>> f.write('test2\n')
6
[root@test01 ~]# cat root.txt  #查看并没有内容
[root@test01 ~]#
>>> f.flush()  #刷新写入到硬盘
[root@test01 ~]# cat root.txt  #再次查看已经有内容了
test1
test2
[root@test01 ~]# file root.txt  #root.txtASCII码的
root.txt: ASCII text
>>> f.readable()  #判断文件是否可读(因为在打开是w)
False
>>> f.close()  #关闭文件
>>> f.close()
>>> f = open('/root/root.txt','r')
>>> f.readable() #因为是用r读的模式打开的文本,所说文件可读
True
>>> f.readline()  #按行读文件、读完会显示 '' 空
'one\n'
>>> f.readline()
'two\n'
>>> f.readline()
'start\n'
>>> f.readline() #文件已经读完
''
>>> f.tell() #查看当前光标
14
>>> f.seek(0) #光标回到开始
0
>>> f.readline() #从新按照行读取、从开头开始
'one\n'
>>> f.readline()
'two\n'
>>> f.seek(1) #光标回到1
1
>>> f.readline()   #重新读、可以看出来从第二个字母开始读
'ne\n'

 
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,如有侵权我会在24小时之内删除!

欢迎使用手机扫描访问本站