因此,我尝试使用os.stat(“ file”)。st_stat将某些文件重命名为其创建日期的时间。然后,我弹出多余的信息,我只需要时间,因为它们已经按日期排列在带日期的文件夹中。代码有点像意大利面条,毕竟我还是个初学者。我使用了很多str(),因为有时我会从os.listdir()中获得“ None”对象,并且在尝试格式化字符串中的整数时遇到了一些错误。因此,问题在于它无法正常工作。我摆脱了所有错误,男孩还是很多,但是它没有重命名为时间戳。我得到类似“ 0R3IJL〜J”的信息。并且它随着时间戳而改变。这使我认为它与时间有某种关系,并且可以固定。
我要重命名的文件是.h264,我正在Raspberry Pi Zero W上使用Raspbian进行工作。
还有一些我得到的名字的例子: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("../")
答案 0 :(得分:0)
我想这将为您解决问题,但请记住,您将需要进行大量检查以使其更安全。我只是重写并简化了您的代码,而没有进行安全检查。
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("..")