Python中重命名的XLS文件是否已损坏?

Python中重命名的XLS文件是否已损坏?,python,xls,file-rename,Python,Xls,File Rename,我是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.yea

我是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文件格式。而不是

new_filename = filename[:(str_index)] + ' ' + str(date) + '.xls'
试一试


这将保留以前的后缀,并对文件名中的多个
字符具有容错性。

用户BenDundee正确地猜测到我无意中将XLSX文件重命名为XLS,并且看不到我面前的内容

您确定没有将
.xlsx
更改为
.xls
?我不确定区别是什么,但我在做类似的事情时遇到过类似的错误。你能在重命名之前打开原始文件吗?你可以重命名“MJ_ProdMaster*”。目录中是否有以MJ_ProdMaster开头但不是.xls文件的文件?如果是这样的话,你添加了.xls扩展名,但是它是无效的。天啊,它总是那么简单,永远不会被注意到!谢谢@BenDundee我愚蠢地没有注意到我正在将XLS重命名为XLSX。要生成日期字符串,只需执行
date=now.strftime(“%m.%d.%Y”)
。我做到了!我想升级投票,因为这是对剧本的有益补充(谢谢:),我知道的唯一原因是我一直都在做这种事情!
new_filename = filename[:(str_index)] + ' ' + str(date) + filename[(str_index):]