Python基础之文件操作

文件的读、写、追加模式

  事实上,文件并不能进行修改 我们所进行的文件的操作是由软件将文件的内容暂时保存 在用户进行操作之后用新的内容覆盖掉原来的内容。

文件的打开

 

    f = open('文件名', encoding='utf-8') 打开文件的编码格式可以自己指定

         f = open('文件名',  '操作方式',encoding='utf-8') 打开文件的同时指明操作方式(r  w a)

 

文件的读

  读文件前要使用open()函数打开文件,默认使用只读的方式打开文件;

       读文件的方式 1.   f.read()             默认的读取方式

                              2.   f.readline()       一次读一行

         3.   f.readlines()     一次读多行并将读出的数据放在一个列表中

         4.   f.readable()      判断文件是否可读

 

f = open('ht.txt', encoding='utf-8')
data = f.read()
print(data)

运行结果:
22222111113333
45643131
86463425
3413
asfds
fsdgre
圣诞节科技感

f = open('ht.txt', encoding='utf-8')
data = f.readline()
print(data)
运行结果:
22222111113333


 

文件的写

  写文件之前同样需要打开文件;

  写文件的方式 1.   f.write()             默认的写方式(会在文件的开头出写并且会覆盖掉原来位置的内容)

 

                              2.   f.writelines()       一次写多行(要和readlines()结合使用)

 补充:这里的 'r+' 也是一种操作方式 意为可读可写; 使用 'w' 方式的时候没有文件就会自动创建文件, open的时候不指定操作方式 会默认为是 'r' 方式

f = open('ht.txt', 'r+', encoding='utf-8')
f.write('hello')
f.close()
f1 = open('ht.txt', encoding='utf-8')
data = f1.read()
f1.close()
print(data)

运行结果:hello3333
45643131
86463425
3413
asfds
fsdgre
圣诞节科技感

 

 

文件的追加

  追加文件之前同样需要打开文件;

  追加文件的方式        f.open('文件名', 'a' ,encoding ='utf-8')   f.write('写到文件最后')

  

f = open('ht.txt', 'a', encoding='utf-8')
f.write('OK')
f.close()

 

文件的关闭

  文件只要使用open()函数打开在进行完操作之后都需要使用close()函数进行关闭,以达到关闭文件回收资源的效果;

 

with关键字 

     如果不想使用close() 我们可以在打开文件的时候使用with关键字 这样会保证文件正常关闭 并且不会抛出异常;

      with 关键字使用的时候要注意句尾生成句柄 f 然后就可以使用句柄来进行操作;

 

 

with open('ht.txt', 'w', encoding='utf-8') as f:
    f.write('Bye')

 

     

 二进制文件的读写操作

   windows平台上硬盘的存储最终是以二进制形式存放数据,字符编码默认使用 unicode;使用二进制文件操作主要有两大优势:1. 节省空间 只在传输文件或者存储的时候才会进行编码 ; 2.  方便与linux平台的交互(linux系统文件是使用二进制存储)。

 

二进制形式的读    

  二进制文件的操作与传统的文件操作大同小异,不同的是操作方式变为 'rb' 'wb'  'ab' , 但是打开文件的时候不需要使用encoding指明编码格式;而是使用encode() 和 decode() 函数进行编码以及解码操作;需要注意编码

f = open('ht.txt',  'rb')
data = f.read()
print(data.decode('utf-8'))

 

 

 

二进制形式的写

  在使用二进制进行写操作的时候需要注意在 write() 函数的内部加上编码格式 否则会抛出格式错误异常

f = open('ht.txt',  'wb')
f.write('黄小德'.encode('utf-8'))

 

posted @ 2018-12-18 19:51  hxd-python  阅读(341)  评论(0)    收藏  举报