将创建时间添加到文件文件名

时间:2019-03-08 12:10:42

标签: python-3.x

到目前为止,我有以下内容:

source_folder = 'file_location'
for file in os.listdir(source_folder):
    if file.startswith('stnet_'):
        os.rename(file, file.replace('stnet_a_b', '%s_' % time.ctime(os.path.getctime(file)) + 'stnet_a_b'))

问题是我不断收到FileNotFoundError:[WinError 2]系统找不到指定的文件'stnet_a_b.raw'

有人可以指出我在做什么错吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

os.listdir只能获得没有目录的文件名,而os.renameos.path.getctime需要带有目录的完整名称(如果您的当前目录不是巧合的file_location,那么将找不到该文件)。 您可以使用os.path.join来获取全名。而且,如果您使用的是Windows,则必须确保文件名不包含代码中包含的特殊字符。

dir = r'file_location'
# os.chdir(dir) # in case you don't want to use os.path.join
for filename in os.listdir(dir):
print(filename)
if filename.startswith('stnet_'):
    src = os.path.join(dir, filename)
    ctime_str = str(time.ctime(os.path.getctime(src)))
    ctime_str = ctime_str.replace(':', '').replace(' ', '')  # remove special characters
    fn_new = filename.replace('stnet_a_b',
                              '{}_'.format(ctime_str + 'stnet_a_b'))
    des = os.path.join(dir, fn_new)
    print('src={}, des={}'.format(src, des))
    os.rename(src, des)

请尝试上面的代码。