学习记录06:python如何保存数据到本地的txt

文章目录

  • 前言
  • 一、代码
  • 二、主要函数说明
    • 1、本地时间
    • 2、保存文件
      • (1)路径格式
      • (2)打开文件
      • (3)刷新缓冲
    • 3、读取文件文件
      • (1)读取txt里的每一行


前言

深度学习或者其他类似的地方需要保存用时间命名的txt文档,以用来本地存储损失或者其他关键参数


提示:以下是本篇文章介绍的代码以及讲解

一、代码

import time		# python里的日期模块


def savePara():
    date = time.strftime('%Y-%m-%d %H:%M:%S').split()		# 按空格分开,这里宫格是我自己添加的
    														# 可以按照自己的习惯添加然后分离出自己需要的时间
    print(date)     # ['2021-07-22', '16:11:00']
    hour_minute = date[1].split(':')
    print(hour_minute)      # 时,分,秒

	# 文件路径
    filepath = './logs/' + date[0] + '-' + hour_minute[0] + '-' + hour_minute[1] \
               + hour_minute[2] + '.txt'
    # 打开文件
    file = open(filepath, 'w')
    # 读取当前时间
    now = time.strftime('%Y-%m-%d %H:%M:%S')
    # 写入数据
    file.write(now + '   ' + 'loss: ' + str(2) + '\n')
    # 刷新缓存
    file.flush()


savePara()

二、主要函数说明

1、本地时间

time.strftime('format') 返回的是当地时间,具体返回的时间取决于format的表达,format有不同的表达,分别代表不同的时间格式,如下:

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

示例如下:

date1 = time.strftime('%y')
print(date1)			
# 输出为21

date2 = time.strftime('%Y')
print(date2)			
# 输出为2021

## 同样也可以组合表达,除了%,其他符号均为原本自己形式
date = time.strftime('%Y-%m-%d %H:%M:%S')
print(date)	
# 输出为2021-08-13 15:35:08

2、保存文件

filepath = './logs/' + date[0] + '-' + hour_minute[0] + '-' + hour_minute[1] \
               + hour_minute[2] + '.txt'
file = open(filepath, 'w')
file.write(now + '   ' + 'loss: ' + str(2) + '\n')
file.flush()

(1)路径格式

filepath是用来存储文件地址路径的,前面的./logs/表示在你的python的同目录下的logs文件夹,如果没有就需要自己手动创建,如果不加这一段就会保存到跟你python文件同级目录下。如果想要写的更加完善可以加一个判断当前目录下是否有logs文件夹,没有的话就自动创建。

os.path.exists(path) 	# 判断一个目录是否存在
os.getcwd()					# 获得当前路径

os.makedirs()							# 创建多级目录
os.makedirs('./logs/loh/log')		# 表示在logs目录下创建文件夹,如果不存在logs文件夹会自己创建logs文件夹,等价于下面
os.makedirs('logs/loh/log')

os.mkdir()			# 创建单级目录	
os.mkdir('logs/loh/log')		# 这里是相对路径,会在loh文件夹里创建log文件夹,如果前面的目录不存在,会报错
os.mkdir('logs')					# 在当前目录下创建logs文件夹,如果已经存在会报错

(2)打开文件

open(filepath, 'w')是用来打开路径指定的文件,后面的w指定对应的操作,有如下一些常见的操作:

x			# 写模式,新建一个文件,如果该文件已存在则会报错
r			# 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w			# 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a			# 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

(3)刷新缓冲

file.flush()是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。如果没有这一条,当连续创建多个文件写入的时候会报错,内存没有及时清除。

3、读取文件文件

(1)读取txt里的每一行

filepath = “xxxxx”
with  open(filepath) as f
	fileContent(读取文件存储变量的) = f.readlines()

你可能感兴趣的:(python小程序,python)