【问题标题】:Renaming files in folder by it's date python按日期python重命名文件夹中的文件
【发布时间】:2019-02-28 08:11:08
【问题描述】:

我想按日期重命名文件夹中的照片。这是我的 python 脚本。

import os
from datetime import datetime

folder_name = 'D:/Users/user/Desktop/Xiomi/100ANDRO/'
dir_list = [os.path.join(folder_name, x) for x in os.listdir(folder_name)]

for file in dir_list:
    filename, file_extension = os.path.splitext(file)
    date = datetime.fromtimestamp(os.path.getctime(file)).strftime('%Y_%m_%d_%H_%M_%S')
    os.rename(os.path.basename(file), date + file_extension)

print(dir_list)

但我有一个错误:

$ python script.py
Traceback (most recent call last):
File "script.py", line 10, in <module>
os.rename(os.path.basename(file), date + file_extension)
FileNotFoundError: [WinError 2] ▒▒ ▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒ ▒▒▒▒: 
'DSC_0003.JPG' -> '2018_07_08_12_28_21.JPG'

文件肯定在文件夹中。你能帮我吗?

【问题讨论】:

  • 重命名需要绝对路径。

标签: python file operating-system


【解决方案1】:

为什么在绝对路径可以的情况下从目标中获取基本名称?

os.rename 适用于存在的文件。如果您传递绝对路径,只要文件位于同一驱动器上,它就可以工作。我会这样做:

os.rename(file, os.path.join(folder_name,date + file_extension))

基本上删除基本名称,并添加目标文件夹名称。由于两者的目录相同,因此可以。而且它比肮脏的os.chdir(folder_name)干净得多@

【讨论】:

    【解决方案2】:

    在我看来你需要给 os.rename() 文件的绝对路径

    os.rename(file, os.path.join(folder_name, date + file_extension))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 2021-03-15
      • 2018-05-28
      相关资源
      最近更新 更多