Python学习笔记(8)文件操作

(1)读文件

 

  try:
   f = open('123.txt', 'r') #以读模式打开一个文件对象
   print(f.read()) #read() 可以一次读取文件的全部内容, Python把内容读到内存
  finally:
  if f:
   f.close() #关闭文件,文件使用完后必须关闭,因为文件对象会占用系统资源,且操作系统同一时间打开的文件是有限的


  推荐使用with操作文件,with语句会自动调用close()方法。 
 
  
     with open('123.txt', 'r') as f:
        print(f.read())
      
    

  read() 一次性读取文件的全部内容

 

    with open('123.txt', 'r') as f:

        print(f.read())
 

    wanghaining1
    wanghaining2
    wanghaining3

 

 

  read(size) 每次最多读取size个字节的内容,如果不能确定文件大小,最好调用read(size)

 

   with open('123.txt', 'r') as f:

      s = f.read(15)
  print(s)
     print('_' * 50)
  结果
  wanghaining1

      wa
      __________________________________________________

 

 

  readline() 每次读取一行数据

 

   with open('123.txt', 'r') as f:

      s = f.readline()
  print(s)
   s = f.readline()
   print(s)

  结果:

     wanghaining1

       wanghaining2

 

 

  readlines() 一次读取所有内容并按行返回list

 

  with open('123.txt', 'r') as f:
   for line in f.readlines():
   print(line)
   print('_'*50)
  结果:

    wanghaining1

    __________________________________________________
    wanghaining2

    __________________________________________________
    wanghaining3
    __________________________________________________

 

 

  要读取二进制数据,比如图片、视频等,使用'rb'。

 

  读取非UTF-8的文本文件,需要传入encoding参数,例如:

  f = open('123.txt', 'r', encoding='gbk) ...

 

(2)写文件

 

  with open('w_test.txt', 'w') as f: # 写入文本文件
   f.write('wanghaining1')

  with open('w_test.text', 'wb') as f: # 写入二进制数据
  f.write(b'wanghaining1')

 

(3)追加

 

with open('w_test.txt', 'wb') as f:
f.write(b'wanghaining1')


with open('w_test.txt', 'ab') as f :
f.write(b'wanghaining2')


其它方法

tell() 返回当前位置
seek() 调整光标位置
with open('123.txt', 'r') as f:
print(f.readline())
print(f.tell())
f.seek(0)
print(f.readline())

   wanghaining1

   14
   wanghaining1

  

    truncate() 

  truncate() 方法用于从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后 V 后面的所有字符被删除,其中 Widnows 系统下的换行代表2个字符大小。 。

 
(4)读写模式

 

 

posted on 2018-04-12 08:45  童话与海  阅读(113)  评论(0)    收藏  举报

导航