【实验常用】Python对文件进行的各种操作大全:创建、读取、追加、重写文件等。

前言

  博主在做深度学习,尤其是计算机视觉方向,常常需要对网络训练过程中的各种输出,比如logits,预测标签的情况进行保存及观察,因此撰写了本博文。大家可以根据自己的需求对下述代码稍作改动,并嵌入到你的代码中,进行各种中间结果及输出结果的保存,从而更直观地观察实验过程中出现的各种问题。注:本博文会不断完善,欢迎大家点赞,收藏,便于下次更快地找到。

一、常用的文件操作形式及函数

  常用的文件操作如下,一般搭配open函数使用,具体使用方式可以参考博文的第三、四部分。

在这里插入图片描述

  常用的文件操作函数如下:

在这里插入图片描述

二、Python追加或重写文件

  下述代码展示了使用Python打开指定路径下的文件,并进行追加写入的过程。如果该文件不存在,则首先创建新文件,然后再进行追加写入操作。其中,核心语句为 with open(path,‘a’) as f:

  如果是重写的话,则加上 f.truncate(0) 即可。

path = r'D:\yandandan2021\code\grade.txt' 

# a表示打开一个文件用于追加。
# 如果该文件已存在,文件指针将会放在文件的结尾,即新的内容将会被写入到已有内容之后。
# 如果该文件不存在,创建新文件进行写入。
with open(path,'a') as f:

    # truncate()方法用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 
    # 如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除。
    # truncate(0)表示清除文件中的所有内容。
    f.truncate(0)
    
    f.write('before1:' + str(90) + '\n')
    f.write('before2:' + str(80) + '\n')
    f.write('before3:' + str(95) + '\n')
    f.close()

三、Python先读取文件再进行追加或重写

  下述代码展示了首先对指定路径下的文件进行逐行读取,然后清除原文件中的所有内容,并进行重写的操作。如果不想清除原文件进行重写,而是单纯地读取并追加,那么不加f.truncate(0)即可

path = r'D:\yandandan2021\code\grade.txt' 

# a+表示打开一个文件用于读写。
# 如果该文件已存在,文件指针将会放在文件的结尾,文件打开时会是追加模式。
# 如果该文件不存在,创建新文件用于读写。
with open(path,'a+') as f:

    # 重新设置文件读取指针到开头
    f.seek(0, 0)
    for line in f.readlines():
        print(line.rstrip()) # rstrip默认消除字符串末尾的空格和换行符

    # truncate()方法用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 
    # 如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除。
    # truncate(0)表示清除文件中的所有内容。
    f.truncate(0)

    f.write('after1:' + str(90) + '\n')
    f.write('after2:' + str(80) + '\n')
    f.write('after3:' + str(95) + '\n')
    f.close()

四、参考链接

1.Python对于文件的各种操作方法可参考:https://www.runoob.com/python/file-methods.html

在这里插入图片描述

2.Python对于字符串的各种操作方法可参考:https://www.runoob.com/python/python-strings.html

在这里插入图片描述

不过,话说回来,虽然官网写的十分详细,但我们常用的也不多。本博文所涵盖的知识,对于多数同学来说,还是足够的。如果该博文对你有所帮助的话,一定要点赞、收藏,加深自己的印象,也便于下次更快地找到,从而节约时间,提高效率。最后,如果你在实验的过程中,有任何问题,欢迎在评论区留言,便于大家一起帮你解决!

猜你喜欢

转载自blog.csdn.net/qq_40968179/article/details/129647362
今日推荐