您现在的位置是:首页 > 正文

【python】时间处理函数以及文件操作

2024-02-01 01:15:05阅读 2

1. 时间函数

模块(库)-使用
流程:先导入,再引用
1:导入
    方式一:import 模块名
    引用:模块名.函数名()

    方式二:from 模块名 import 函数名/变量/类
        函数名后面不需要括号
   引用:函数名()
time模块
  时间戳(秒数的总和)  1970年1月1日之后的秒,即:time.time()
  格式化的字符串 2019-11-11 11:11,    即:time.strftime('%Y-%m-%d')
  结构化时间  元组包含了:年、日、星期等... time.struct_time    即:time.localtime()
# 方式一:
import time
print('时间戳:',time.time())
print('格式化时间:',time.strftime('%Y-%m-%d %H:%M:%S'))
# 2020/05/21
# 2020-05-21
# 2020年05月21日

# 方式二
from time import time,strftime
print('时间戳:',time())
print('格式化时间:',strftime('%Y-%m-%d %H:%M:%S'))

# 方式三

from time import *
print('时间戳:',time())
print('格式化时间:',strftime('%Y-%m-%d %H:%M:%S'))
print('结构化时间:',localtime())
# time.struct_time(tm_year=2021, tm_mon=5, tm_mday=21,
#                  tm_hour=20, tm_min=43, tm_sec=48,
#                  tm_wday=4, tm_yday=141, tm_isdst=0)
# #周五:第4天     每周从周一开始计时,从0开始
# 分别获取当天日期中的年、月、日
print('结构化时间-年:',localtime().tm_year)
print('结构化时间-月:',localtime().tm_mon)
print('结构化时间-日:',localtime().tm_mday)

2. 时间转换函数

strftime()/asctime():结构化时间-格式化字符串时间    
mktime():结构化时间-时间戳

localtime()/gmtime():时间戳-结构化时间
ctime():时间戳-格式化字符串时间          

strpftime():格式化字符串时间-结构化时间
import time #快速导包:鼠标放在导入的模块上,alt+enter --选择需要的模块

# 时间戳

t1 = time.time()
# 字符串
t2 = time.strftime('%Y-%m-%d %H:%M:%S')
print(t2)
# 结构化时间
t3 = time.localtime()

print('结构化时间-格式化字符串时间',t3,'\n',time.strftime('%m-%d-%Y',t3))  #ctrl+d快速赋值一行代码
print('结构化时间-格式化字符串时间',t3,'\n',time.asctime(t3))
print('结构化时间-时间戳',t3,'\n',time.mktime(t3))
print('时间戳-格式化',t1,'\n',time.ctime(t1))

3. 文件操作

对于file文件的使用流程:
步骤:打开文件--读或者写--关闭文件

    打开文件:f=open(文件名,模式)
    写:f.write(写入的文本内容)
    读:f.read([字符数量])   f.readline()    f.readlines()
    关闭文件:f.close()
file = open('t2.txt')
电脑上打开文件
    只读模式  --》  只能阅读,不能修改(删除,增加,修改)  --r
    正常模式   --》读,修改  -- w ,a

1-w模式,写入(覆盖写)
w:表示打开一个文件只用于写入。
  如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。
  如果该文件不存在,创建新文件,并从开头开始编辑。
wirte():写入文本内容的方法
w+模式下 其实和w模式一样,把文件清空后,再写入新的内容。
# 案例1:以写入的方式打开一个不存在的文件,写入数据,关闭文件
file = open('t1.txt','w')
file.write('这是新建的t1.txt文件')
file.close()

# 案例2:以写入的方式打开一个存在的文件,写入新的数据,关闭文件
file = open('t1.txt','w',encoding='utf-8')
file.write('这是写入的新的内容')
file.close()
2-a模式,追加
a:打开一个文件用于追加。
    如果该文件已存在,文件指针将会放在文件的结尾,新的内容将会被写入到已有内容之后。
    如果该文件不存在,创建新文件,写入新的内容。
wirte():写入文本内容的方法
# 案例1:以写入的方式打开一个不存在的文件,写入数据,关闭文件
file = open('t2.txt','a',encoding='utf-8')
file.write('\n这是新创建的文件,以a的模式增加数据')
file.close()

# 案例2:以写入的方式打开一个存在的文件,要求写入新的数据不会覆盖原来的数据,关闭文件
file = open('t1.txt','a',encoding='utf-8')
file.write('\npython真很强大')
file.close()
3-r模式-读

r:表示以只读方式打开文件,文件的指针将会放在文件的开头。
    这是默认模式,r可以省略。
    这种模式下不具有写的权限,只能查看文本内容,不能改写文本内容。
read(n):读取指定字节长度的内容
readline():一行一行读取文件内容
readlines():读取文件所有内容,返还到一个列表中
# 案例1:读取t4.txt文件中2个字符的内容
file = open('t4.txt')
res1 = file.read(2)  #2个字节长度
print(res1)

print('==========')

res2 = file.read()  #所有内容
print(res2)

file.close()

# 案例2:读取t4.txt文件中第一行的内容
file = open('t4.txt')
line1 = file.readline()
print(line1)

print('==========')
line2 = file.readline()
print(line2)
file.close()

# 案例3:读取t4.txt文件中所有的内容
file = open('t4.txt')
all = file.readlines()
print(all)
file.close()

# 循环读取
file = open('t4.txt')
for line in file.readlines():
    print(line)
file.close()
4-r+模式-读写

对于读写模式,必须是先读后写,因为光标默认在开头位置,当读完了以后再进行写入。频率最高的模式就是r+

注意:在r+模式下,如果读取了内容, 不论读取内容多少,光标显示的是多少,
再写入或者操作文件的时候都是在结尾进行的操作。
# 案例1:读取t4.txt文件中所有的内容后再在末尾添加'web自动化测试'
file = open('t4.txt','r+',encoding='utf-8')
# 读
all = file.readlines()
print(all)
# 写
file.write('web自动化测试')
file.close()
# 为什么写入的新的内容不会覆盖原本的数据内容?
# 先读后写,所以光标在文件的最后面,写入的内容不会覆盖之前的内容

file = open('t4.txt','r+',encoding='utf-8')
# 写
file.write('\napp自动化测试\n')
file.close()
# 以r+模式写入,不会覆盖原本的内容,会在原本的内容末尾追加
# 思考:添加新内容后,如果再次读取文件中的所有内容
# 控制光标的移动,file.seek(光标的位置)
file = open('t4.txt','r+',encoding='utf-8')
# 读
all = file.readlines()
print(all)
# 写
file.write('\n测试框架\n')

# 控制光标的移动
file.seek(0)

# 再读
all2 = file.readlines()
print(all2)

file.close()
5-with open
通过使用with open..as...不用手动关闭文件。当执行完内容后,自动关闭文件。

with open(路径,模式)  as 变量:
      代码块
with open('t4.txt','r+',encoding='utf-8') as file:
   print(file.readlines())
   file.write('aaaa')

 

 

 

网站文章

  • 宝塔部署来客电商时,出现“open_basedir restriction in effect”错误解决方案 出现如下错误:

    宝塔部署来客电商时,出现“open_basedir restriction in effect”错误解决方案 出现如下错误:

    宝塔部署来客电商时,出现“open_basedir restriction in effect”错误解决方案Application/LKT/webapp/_compile

    2024-02-01 01:14:59
  • 国外黑客站点收集

    著名的黑客站点 国外黑客安全 http://www.deadly.org/ 大量关于OpenBSD的资料文档教程 国外黑客安全 http://www.guninski.com/ 安全专家Guninsk...

    2024-02-01 01:14:51
  • C++ 动态开辟二维数组的的方法

    近日写到一个程序,用到了要动态开辟二维数组,一想,自己就会两种。一者:用new在堆上开辟;二者:用vector开辟。技巧没有多少,但是确实是折腾了我半天!首先,大家去网上搜一下,动态开辟二维数组的文章特别多,再加上我这篇就更多了,我本不想写这篇博文的。但看了网上各位“大虾”“大牛”写的,觉得还是有必要写一下!给各位讲清楚点,以防被网上质量残次不齐的文章误导了。 写...

    2024-02-01 01:14:44
  • jmeter结果合并_JMeter:生成多维度的HTML报告

    作者:wang.lan摘要:本篇文章主要讲解jmeter性能测试工具在生成测试报告方面一直有所欠缺,但是JMeter在3.0以后解决了这个问题.JMeter3.0以后引入了Dashboard Repo...

    2024-02-01 01:14:15
  • HystrixRPC保护的原理,HystrixCommand命令的执行方法

    HystrixRPC保护的原理,HystrixCommand命令的执行方法

    HystrixCommand命令的执行方法 前面讲到,独立使用HystrixCommand命令主要有以下两个步骤: (1)继承HystrixCommand类,将正常的业务逻辑实现在继承的run方法中,...

    2024-02-01 01:14:09
  • SpringBoot配置

    SpringBoot配置

    配置文件分类Spring boot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者 application.ym...

    2024-02-01 01:14:00
  • 【设计模式】桥接模式

    【设计模式】桥接模式

    设计模式大总结 桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。一。简解桥接模式顾名思义,是在两个模块间搭的一个桥,这两个模块就是抽象化和实现 抽象由抽象类或者接口声明的,作为一类类的抽象 实现则是继承抽象类或者

    2024-02-01 01:13:32
  • Android中根据手机的分辨率dp和px之间的转换

    public class UnitUtil { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dp2px(Context context, float dpValue) { final float scale = context.getResources().getDisplay...

    2024-02-01 01:13:24
  • 理解KMP算法

    理解KMP算法

    KMP算法用于字符串模式匹配,目标串T=[T1.....Tn],模式串P=[P1....Pm],这里n>=m,i代表T的索引指针,j代表P的索引指针,传统字符串匹配算法,在Ti!=Pj的时候,i指针需要回退到i-j的位置,同时j回退到0,也就是模式串P开始的位置,这样传统算法的匹配过程的复杂度就是O(m*n)。其实在Ti!=Pj的时候,i指针不需要回退,[Ti-j+1...Ti-1]和[P1...

    2024-02-01 01:13:16
  • 微电子学与计算机期刊2019,微电子与通信工程学院研究生两篇论文被人工智能顶级会议AAAI 2019接收...

    微电子学与计算机期刊2019,微电子与通信工程学院研究生两篇论文被人工智能顶级会议AAAI 2019接收...

    近日,微电子与通信工程学院研究生有两篇文章被国际人工智能领域顶级学术会议AAAI 2019(AAAI Conference on Artificial Intelligence 2019)录用。AAA...

    2024-02-01 01:12:50