gpt4 book ai didi

linux - 将文件 os.rename() 重命名为时间戳返回奇怪的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 11:54:12 26 4
gpt4 key购买 nike

所以我尝试使用 os.stat("file").st_stat 将一些文件重命名为创建日期的时间。然后我弹出多余的信息,我只需要时间,因为它们已经在日期文件夹中按日期排序。代码有点像意大利面条,毕竟我还是个初学者。我使用了很多 str() 因为有时我从 os.listdir() 得到“无”对象并且我在尝试格式化字符串中的整数时遇到了一些错误。所以问题是它不能正常工作。我摆脱了所有的错误,男孩他们很多,但它没有重命名为时间戳。我得到像“0R3IJL~J”这样的东西。它随着时间戳而变化。这让我认为它与时间有某种关系并且可以修复。

我尝试重命名的文件是 .h264,我正在使用 Raspbian,在 Raspberry Pi Zero W 上工作。

以下是我得到的名称的更多示例:06RR8I~Y、0OFKLJ~J、0O5KZV~I、0PJJ0D~V。

import os
import datetime


dates = []
for i in range(1,7):
if 1 <= i <= 6:
i = "0{}".format(str(i))
for j in range(1,31):
if 1 <= j <= 9:
j = "0{}".format(str(j))
dates.append("2019-{}-{}".format( i, j))


for dt in dates:
if os.path.exists(str(dt)):
os.chdir(str(dt))
for fil in os.listdir("."):
created = os.stat(str(fil)).st_ctime
da_cr = str(datetime.datetime.fromtimestamp(created))
print type(da_cr)
li_cr = list(da_cr)
if li_cr[-7] == ".":
for i in range(7):
li_cr.pop(-1)
for i in range(11):
li_cr.pop(0)
nn = "".join(l_c for l_c in li_cr)
print fil
os.rename(fil, str(nn))
os.chdir("../")

最佳答案

我想这会为您解决问题,但请记住,您需要实现大量检查以使其更安全。我只是重写并简化了您的代码,而没有进行安全检查。

import os
from datetime import datetime

dates = []
for i in range(1, 7):
for j in range(1, 31):
dates.append("2019-%0.2d-%0.2d" % (i, j))

for date in dates:
if os.path.exists(date):
os.chdir(date)
for filename in os.listdir("."):
timestamp = datetime.fromtimestamp(os.stat(filename).st_ctime)
os.rename(filename, timestamp.time())
os.chdir("..")

关于linux - 将文件 os.rename() 重命名为时间戳返回奇怪的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54964560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com