目录

 实践一:读取文件并打印,read()

 实践二:读取文件的一行并打印,readline()

 实践三:读取文件的所有行存入到一个列表中并打印,readlines()

 实践四:向文件中写入字符串,write()

 实践五:将一个文件中的内容逐行写入到另一个文件中


        python的读写文件操作在很多项目中都会遇到,抽出时间,把这部分好好总结一下,以备不时之需。

        用python进行读写的时候,一般会涉及到常用的方法,像open,write,read,readline,readlines,with等,接下来对这些方法进行剖析,然后再通过实践来运用一下这些方法。

open(filename,mode):

        该函数是python的内置函数,通过该函数打开一个文件,文件的名字或路径就是filename;打开该文件的同时,可以声明参数mode,指定对该文件是只读或只写或可读可写等,默认是只读;该函数的返回值一个文件对象,通过文件对象可以调用write,read这一系列方法。

参数mode:该参数的取值可以为以下这些值

r:以只读方式打开文件。文件的指针将会放在文件的开头。该参数的默认值。

w:只写该文件,即只能往该文件中写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,则创建新文件。

r+:打开一个文件用于读写。文件指针将会放在文件的开头。

w+:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。与w的不同之处在于可以读

a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

除此之外可以多加一个b,即rb,wb,rb+,wb+,ab,ab+,这些的意思是打开文件的方式是以二进制的形式打开,其他的都保持一致。

         通过调用函数open(),我们得到一个文件对象,通过文件对象可以调用以下这些方法:

read([size]):size表示从文件中读取的字节数,size 未指定则返回整个文件,read()读到文件尾时返回""(空字串)。

readline():该方法从文件中读取整行,包括换行符'\n'。

readlines([size]) :返回包含size行的列表, size 未指定则返回全部行,即读取全部行,并且把所有行放入到一个列表中,每一行作为一个字符串,列表中的一个元素代表一行。

write("context\n"):双引号内的内容为要写入文件中的内容,要确保它是字符串,如果要写入字符串以外的数据,则先将它转换为字符串再写入。

close(): 关闭文件,打开文件并处理完毕后,需要关闭文件。如果用with open() as .. 则不需要调用close方法。

 实践一:读取文件并打印,read()

创建一个txt文件,存入以下内容,注意aaa之后我没有换行:

ddddd
bbb
ccc
aaa

 编写以下代码:

# 获得文件的路径
fpath1 = r"C:\Users\LBS\Desktop\test1.txt"
# 使用with open打开文件,这样不用调用close()方法来关闭文件了
with open(fpath1, 'r') as f:
    # read()方法,读取文件中所有的内容
    content = f.read()
    print(content)

 结果如下:

 

 实践二:读取文件的一行并打印,readline()

# 获得文件的路径
fpath1 = r"C:\Users\LBS\Desktop\test1.txt"
# 使用with open打开文件,这样不用调用close()方法来关闭文件了
with open(fpath1, 'r') as f:
    # readline()方法,读取文件中每一行,当读取完一行再次读取时,则从上次读取结束处开始读取
    content1 = f.readline()
    print(content1)
    content2 = f.readline()
    print(content2)

 结果如下: 

 实践三:读取文件的所有行存入到一个列表中并打印,readlines()

# 获得文件的路径
fpath1 = r"C:\Users\LBS\Desktop\test1.txt"
# 使用with open打开文件,这样不用调用close()方法来关闭文件了
with open(fpath1, 'r') as f:
    # readlines()方法,读取文件中所有行,每一行作为一个字符串存入在列表中,并且换行符用\n来表示。
    content = f.readlines()
    print(content)

 结果如下: 

 实践四:向文件中写入字符串,write()

 注意这里我在open文件的时候,我里面的参数变成了w,w的意思是我每次先清除文件中的所有内容然后再写入。

编写代码如下:

# 获得文件的路径
fpath1 = r"C:\Users\LBS\Desktop\test1.txt"
# 使用with open打开文件,这样不用调用close()方法来关闭文件了
with open(fpath1, 'w') as f:
    # readlines()方法,读取文件中所有行,每一行作为一个字符串存入在列表中,并且换行符用\n来表示。
    content = f.write('eeeee\n')

结果如下:之前的内容被清空,只存有写入的内容,如果想要再以前的内容后面写入,则把open内的参数更换为’a' 或‘a+’

 实践五:将一个文件中的内容逐行写入到另一个文件中

假设当前有两个txt文件,内容分别如下:

 我们打算将aaa.txt文件中的内容写入到test1中,并保证test1中的原有内容不会被删除。

编写以下代码:

# 获得两个文件的路径
fpath1 = r"C:\Users\LBS\Desktop\aaa.txt"
fpath2 = r"C:\Users\LBS\Desktop\test1.txt"
# 以只读的形式打开文件fpath1
with open(fpath1, 'r') as f:
    # readlines()方法,读取文件中所有行,每一行作为一个字符串存入在列表中,并且换行符用\n来表示。
    # 这样我们得到了一个字符串列表,字符串列表中的每个元素代表一行内容
    aaa_content = f.readlines()
    # 以列表的形式打印aaa.txt中的内容
    print('aaa.txt中的内容为:{}'.format(aaa_content))
    # 以追加的形式打开文件fpath2
    with open(fpath2, 'a+') as f1:
        # 循环遍历aaa.txt中每一行的内容,写入文件遇到\n时自动换行
        for i in aaa_content:
            f1.write(i)

结果为:可见eeeee后面追加了四行内容

 以上就是python读写文件的应用,大家可以多动手尝试以下当open中的打开文件模式更改时,会有什么不同之处。

书写不易,转载请注明出处。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐