文件操作

  针对磁盘中的文件的读写。文件I/O 输入input 输出output

  文件操作步骤

    1、打开文件 2、读写文件 3、关闭文件

  1、打开文件 open()

    参数1:文件路径

        相对路径   绝对路径

    参数2:打开方式

        一、基础模式:w r x a

        w模式 :write 写入

           1、文件如果不存在则创建文件

             2、文件如果存在,则打开文件并且清空文件内容

             3、文件打开后,文件的指针在文件的最前面

         r模式:read 读取模式

           1、如果文件不存在,则报错

           2、如果文件存在,则打开文件

           3、文件指针在文件的最前面

          x模式:xor 异或模式

           1、如果文件不存在,则创建这个文件

           2、文件存在,则报错(防止覆盖)

           3、文件指针在文件的最前面

         fp = open('./1.txt','x',encoding='utf-8')

       a模式:append 追加模式

          1、文件不存在则创建

             2、文件存在,则打开文件(和w模式的区别在于a模式打开文件后不会清空)

             3、文件指针在当前文件的最后面

      二、扩展模式:

        b模式 bytes 二进制

          +模式 plus模式 增强模式(可读可写)

      三、文件操作模式的组合:

          w,r,a,x

        wb,rb,ab,xb

        w+,r+,a+,x+(w+ 可读写,与a+的区别是要清空文件内容;r+   可读写,与a+的区别是可以写到文件任何位置;a+  可读写模式,写只能写在文件末尾

        wb+,rb+,ab+,xb+  

参数 encoding 可选参数,设置文件的字符集

如果是一个二进制的文件时,不需要设置字符集

encoding='utf-8'

文件读取-------read()------读取所有文字

  1、打开文件 open() 

     2、读取文件内容read()

  3、关闭文件close() 

#打开文件,创建一个文件对象
f = open('guyouzhe','r',encoding='utf-8')
#读取内容。使用文件对象,调用read()
res = f.read()
print(res)
#关闭文件,使用文件对象调用close(),关闭文件
f.close()

   r模式下打开文件只能读一次,根本原因:Python 文件操作中,有一个玩意叫做指针(seek),seek(0)调整指针从头开始。

 

#打开文件,创建一个文件对象
f = open('guyouzhe''r',encoding='utf-8')
#读取美容。使用文件对象,调用read()
res = f.read()
f.seek(0)   #调整指针的位置,从头开始
res2 = f.read()
f.seek(0)   #调整指针的位置,从头开始
res3 = f.read()
print(res)
print('--2---')
print(res2)
print('---3---')
print(res3)

  readline()读取行数

 

文件写入-------write()

  写入文件的操作:

    1、打开文件 open() 

     2、写入内容write() 

     3、 关闭文件close() 

#打开文件,创建一个文件对象
f = open('test.txt','w',encoding='utf-8')
#写入内容。使用文件对象调用write()方法
res = f.write('蝶与我舞,鸟为我奏。 风与我笑,雨与我哭。 风伴与我,我随它舞。')
#关闭文件,使用文件对象调用close().关闭文件
f.close()

文件追加----'a':以追加模式打开文件,如果文件不存在则创建,文件指针在文件开头,存在,则在文件末尾追加内容,指针在文件末尾

f = open('test.txt','a',encoding='utf-8')
#写入内容。使用文件对象调用write()方法,写在文本的最后面
res = f.write('\n蝶与我舞,鸟为我奏。\n')
res = f.write('孤独是因为没有找到合适的同行者\n')
#关闭文件,使用文件对象调用close().关闭文件
f.close()

 修改文件中的内容-------replace('修改前','修改后')

f = open('guyouzhe','r',encoding='utf-8')
f_new =open('guoyouzhe.txt','w',encoding='utf-8')
for line in f:
    if '爱你孤身走暗巷' in line:
        line =line.replace('爱你孤身走暗巷','---------')
    f_new.write(line)
f.close()
f_new.close()

 

 with语句

  有一些任务,可能事先需要设置,事后做清理工作。为了避免打开文件忘记关闭,可以通过管理上下文

  语法:

  with open('test','r',encoding='utf-8') as file:

    .........

  执行完with后,内部会自动关闭并释放文件资源。

with open('guyouzhe','r',encoding='utf-8') as file:
    for line in file:
        print(line)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2022-05-17 16:26  草根920  阅读(124)  评论(0编辑  收藏  举报