Документы Word хранятся в произвольном формате, который помещает загрузку двоичного кода в начало файла.
Самым простым было бы что-то сбить в Python, который искал первую строку, начинающуюся с символов ASCII. Вот, пожалуйста:
#!/usr/bin/python
import glob
import os
for file in glob.glob("*.doc"):
f = open(file, "rb")
new_name = ""
chars = 0
char = f.read(1)
while char != "":
if 0 < ord(char) < 128:
if ord("a") <= ord(char) <= ord("z") or ord("A") <= ord(char) <= ord("Z") or ord("0") <= ord(char) <= ord("9"):
new_name += char
else:
new_name += "_"
chars += 1
if chars == 100:
new_name = new_name[:20] + ".doc"
print "renaming " + file + " to " + new_name
f.close()
break;
else:
new_name = ""
chars = 0
char = f.read(1)
if new_name != "":
os.rename(file, new_name)
ПРИМЕЧАНИЕ: если вы хотите перетаскивать несколько каталогов, вам необходимо соответствующим образом изменить строку перетаскивания. Также это не учитывает, существует ли уже файл, который вы пытаетесь переименовать, поэтому, если у вас есть несколько документов с одними и теми же первыми несколькими символами, вам придется с этим справиться.
Я нашел первый кусок из 100 символов ASCII подряд (если вы ищете меньше, чем в итоге, вы выбираете ключевые слова и т. Д.), А затем использовал первые 20 из них, чтобы создать новое имя, заменяя все, что чтобы избежать проблем с именами файлов, не az AZ или 0-9 с подчеркиванием.