我是Python的新手,我想完成一项简单的任务,但我有点困惑/困惑。我只是有一个我想要自动化的任务,它将当前日期附加到excel文件的文件名中以便工作。
import os
import sys
import datetime
src_dir = os.path.normpath('\\\\EXAMPLE_SERVER_NAME\\x$\\Clients\\Public\\')
dir = os.listdir(src_dir)
now = datetime.datetime.now()
year = now.year
month = now.month
day = now.day
date = str(month) + '.' + str(day) + '.' + str(year)
new_filename = ''
for filename in dir:
if filename.startswith('MJ_ProdMaster'):
str_index = filename.index('.',0,len(filename))
new_filename = filename[:(str_index)] + ' ' + str(date) + '.xls'
new_filename = os.path.join(src_dir, new_filename)
old_filename = os.path.join(src_dir, filename)
os.rename(old_filename,new_filename)
当我在Libre Office中打开刚刚重命名的XLS文件时,我收到的警告是:
文件已损坏,因此无法打开。 LibreOffice可以尝试修复该文件。
腐败可能是文档操作或数据传输导致的结构文档损坏的结果。
所以我对文件的重命名已经明显损坏了它,即使从表面上看它似乎正确地重命名文件。我不确定我是如何破坏它的。一个次要(但同样重要)的问题是我应该在我的脚本中做些什么,因为我显然没有成功完成重命名任务。
编辑:如果是任何其他信息,当我尝试修复Libre Office中的文件时出现错误读取错误:未知或不支持的Excel文件格式。
答案 0 :(得分:3)
而不是
new_filename = filename[:(str_index)] + ' ' + str(date) + '.xls'
试
new_filename = filename[:(str_index)] + ' ' + str(date) + filename[(str_index):]
这将保留以前的所有后缀,并且对文件名中的多个.
字符具有容错能力。
答案 1 :(得分:2)
用户BenDundee正确猜到我不小心将XLSX文件重命名为XLS,无法看到我面前的内容。