1

我有一大堆各种各样的文件,都缺少文件扩展名。

我目前使用的是 Windows 7 Pro。我能够“打开”并尝试确定打开这些文件的应用程序,并手动重命名以适应。

但是我想要一些方法来识别正确的文件类型(通常是 PDF,其他包括 JPG、HTML、DOC、XLS 和 PPT),并批量重命名以添加适当的文件扩展名。

我可以用记事本打开一些文件并查看前四个字节,在某些情况下显示“%PDF”。

我认为一个小脚本将能够检查这些字节,并根据需要重命名。然而,并非所有文件都提供如此简单的方法。HTML、JPG、DOC 等似乎没有给出如此简单的标识符。

此 Powershell 方法似乎很接近:https ://superuser.com/questions/186942/renaming-multiple-file-extensions-based-on-a-condition

这里的困难在于将方法集中在没有扩展名的文件类型上;然后如何处理没有前四个字节标识符的文件?

感谢任何帮助!

编辑:在这里看到的使用 TriD 的解决方案:http ://mark0.net/soft-trid-e.html 和使用 Powershell 在此处执行 TriD 的递归方法:http://mark0.net/forum/index.php?topic= 550.0

4

2 回答 2

1

您可能可以通过获取file适用于 Windows 的实用程序来节省一些时间(请参阅 Windows的 Linux 文件命令的等效项是什么?),然后编写一个从文件类型映射到扩展名的简单脚本。

编辑:看起来该页面上提到的 TriD 实用程序可以立即执行您想要的操作;请参阅 -ae 和 -ce 选项)

于 2013-07-24T00:13:17.607 回答
0

使用python3。

import os,re
fldrPth = "path/to/folder" # relative to My Documents
os.chdir(fldrPth)
for i in os.listdir():
    with open(i,'r') as doc:
        st = doc.read(4)
    os.rename(i,i+'.'+re.search(r'\w+',st).group())

希望这会奏效。我没有测试文件来检查代码。进行备份,然后运行它,让我知道它是否有效。

于 2013-07-23T23:55:06.607 回答