您有两个错误。
首先:您具有文件夹名称,但不会从文件夹中获取文件名。您必须使用os.listdir()
或glob.glob(...)
来获取它。
import os
folder = "/Users/akshitarora/Downloads/Akshitpythoncole/"
filenames = os.listdir(folder)
接下来,您必须使用循环来分别更改每个文件名。
第二:日期October 1,1970
不适合格式化%m-%d-%Y
,而不能匹配%B %d,%Y
。
当您使用strptime(name,"%B %d,%Y")
时,请不要忘记删除文件扩展名。或者使用格式为"%B %d,%Y.pdf"
的扩展名。格式化新名称"%m-%d-%Y.pdf"
时,也可以使用扩展名
更改名称时-using os.rename()
-必须记住必须将文件夹添加到文件名才能创建完整路径-os.path.join(folder,filename)
我没有测试(因为我没有此文件夹和这些文件),但是它应该可以工作
import os
import datetime
folder = "/Users/akshitarora/Downloads/Akshitpythoncole/"
filenames = os.listdir(folder)
#filenames = ['October 1,1970.pdf','March 27,1995.pdf']
for name in filenames:
if name.endswith('.pdf'):
dt = datetime.datetime.strptime(name,%Y.pdf")
new_name = dt.strftime("%m-%d-%Y.pdf")
print(new_name)
old_path = os.path.join(folder,name)
new_path = os.path.join(folder,new_name)
顺便说一句:使用名称为datetime
的变量不是一个好主意,因为您使用具有相同名称datetime
的模块,而使用具有该名称的变量则无法访问模块。>
编辑:名称为“ 1972年10月1日,A.pdf”,“ 1972年10月1日,B.pdf”的问题
我检查名称是否有3个空格,然后在最后一个空格上将其分割以获取包含部分的列表
['October 1,1972','A.pdf']
。现在,我可以在第一部分中转换日期,然后在第二部分中将其加入以创建名称10-01-1972 A.pdf
import datetime
filenames = ['October 1,1972 A.pdf','October 1,1972 B.pdf',1972.pdf']
for name in filenames:
if name.endswith('.pdf'):
if name.count(' ') == 3:
parts = name.rsplit(' ',1) # split on last space
print(' parts:',parts)
dt = datetime.datetime.strptime(parts[0],%Y")
parts[0] = dt.strftime("%m-%d-%Y")
new_name = ' '.join(parts)
else:
dt = datetime.datetime.strptime(name,%Y.pdf")
new_name = dt.strftime("%m-%d-%Y.pdf")
print(name,'->',new_name)
,
导入操作系统
导入日期时间
文件名= os.listdir(文件夹)
用于文件名中的名称:
if name.endswith('A.pdf'):
dt = datetime.datetime.strptime(name,%Y A.pdf")
new_name = dt.strftime("%Y-%m-%d.pdf")
print(new_name)
if name.endswith('B.pdf'):
dt = datetime.datetime.strptime(name,%Y B.pdf")
new_name = dt.strftime("%Y-%m-%d.pdf")
print(new_name)
if name.endswith('C.pdf'):
dt = datetime.datetime.strptime(name,%Y C.pdf")
new_name = dt.strftime("%Y-%m-%d.pdf")
print(new_name)
if name.endswith('D.pdf'):
dt = datetime.datetime.strptime(name,%Y D.pdf")
new_name = dt.strftime("%Y-%m-%d.pdf")
print(new_name)
if name.endswith('E.pdf'):
dt = datetime.datetime.strptime(name,%Y E.pdf")
new_name = dt.strftime("%Y-%m-%d.pdf")
print(new_name)
if name.endswith('F.pdf'):
dt = datetime.datetime.strptime(name,%Y F.pdf")
new_name = dt.strftime("%Y-%m-%d.pdf")
print(new_name)
if name.endswith('G.pdf'):
dt = datetime.datetime.strptime(name,%Y G.pdf")
new_name = dt.strftime("%Y-%m-%d.pdf")
print(new_name)
old_path = os.path.join(folder,name)
new_path = os.path.join(folder,newName)
本文链接:https://www.f2er.com/3170067.html