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

标签 linux python-2.7 python-os

所以我尝试使用 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/

相关文章:

linux - Cron 不会在 Ubuntu 21.10 impish 上执行我的任何命令

javascript - 为什么在此示例中图像高度变得如此之大?

python - 从 python 脚本中删除文件

linux - 无法更改Linux系统上的时区信息

linux从内核中的pid获取进程名称

java - OpenLDAP 2.3/2.4 并发问题

python-2.7 - 从上下文管理器创建的对象中模拟函数

如果类实例化对象不存在,Python 避免方法调用?

python - Windows 与 Linux 文件模式

Python os.path.join 错误地附加路径