Python创建文件并对文件进行追加或重写
- 前言
- 一、常用的文件操作形式及函数
- 二、Python追加或重写文件
- 三、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
不过,话说回来,虽然官网写的十分详细,但我们常用的也不多。本博文所涵盖的知识,对于多数同学来说,还是足够的。最后,如果你在实验的过程中,有任何问题,欢迎在评论区留言,便于大家一起帮你解决!