多语言展示
当前在线:976今日阅读:91今日分享:37

python中OSError: [Errno 22] Invalid argument

在使用python的time.localtime时,新手会出现:OSError: [Errno 22] Invalid argument错误,对于还没踩过此坑的朋友来说,此提示没有指明具体原因,实在是一头雾水
工具/原料
1

python3以上

2

time模块

方法/步骤
1

python在爬取数据过程中,会遇到以时间戳表示的日期,此时为了看上去方便,都需要将其转换为‘2020-03-12’这样的格式。

2

先写上代码:import time  date = '64' timeArray=time.localtime(int(date)) print(time.strftime('%Y-%m-%d', timeArray))此时运行就会出现错误:OSError: [Errno 22] Invalid argument

3

错误的原因不在于格式,因为我们已通过int(date)进行了转换,真正的错误在于date的长度,一般爬取下来时显示的时间戳时长都是13位的数字,而time.localtime的参数要的长度是10位,所以我们需要将其/1000并取整即可。

4

import time  date = '64' timeArray=time.localtime(int(int(date)/1000)) print(time.strftime('%Y-%m-%d', timeArray))此时就能得到2020-03-06这样的格式了。

推荐信息