Как изменить имя файла без изменения расширения файла в Python?

Как вы знаете, расширение файлов не имеет значения в системах *nix, но мы все равно используем его для простоты использования. Однако в Windows это важно.

У меня есть серверная программа (python) на Linux-машине, которая отправляет файлы клиентам. Некоторые файлы имеют расширение, некоторые файлы не имеют расширения, а некоторые из них имеют одну или несколько точек (.) в имени файла.

В машинах Windows (расширения скрыты или нет), как изменить имя файла без изменения расширения.?

Например:

Файлы отправляются с моего сервера Linux:

      abc.txt (txt files)
      def.doc (doc files)
      qwe.qwe.qwe (text files not have extension)

Желаемый вывод на Windows Machine1 (не скрывать расширение):

     abc_Monday.txt (txt files)
     def_Monday.doc (doc files)
     qwe.qwe.qwe_Monday (text files not have extension) 

Желаемый результат на Windows Machine2 (скрыть расширения):

     abc_Monday (txt files but extension is not seen)
     def_Monday (doc files but extension is not seen)
     qwe.qwe.qwe_Monday (text files not have extension)

А также существует так много расширений файлов. Из-за этого я не хочу использовать черный список для определения расширений файлов. Как отличить файл с расширением или нет, и как переименовать его, не меняя расширение на стороне клиента Python?


person skywalkerc    schedule 02.02.2015    source источник
comment
qwe это расширение.. Я не понимаю, как вы не собираетесь это скрывать   -  person Karoly Horvath    schedule 02.02.2015
comment
Я не хочу скрывать qwe. Это не расширение, я его только что придумал. Другой пример файла файла, не имеющего расширения, отправленного с моей машины Linux. myfile_02.02.2015 Этот файл содержит точку, но не имеет расширения. Прежде чем переименовывать мои файлы, как автоматически определить, есть у файла расширение или нет?   -  person skywalkerc    schedule 02.02.2015
comment
.qwe может быть (или, вероятно, является) допустимым расширением файла. Вы должны составить список допустимых (по вашему мнению) расширений файлов.   -  person dmg    schedule 02.02.2015
comment
qwe — это просто пример. Мы можем изменить это .sjdvsgdsd Спасибо за предложение списка. Мне просто интересно, существуют ли какие-либо другие варианты в python, чтобы понять расширение файла.   -  person skywalkerc    schedule 02.02.2015
comment
.sjdvsgdsd так же действителен. Вы можете найти расширения файлов, которые в настоящее время известны вашей системе, и использовать их в качестве белого списка, но я не думаю, что это действительно поможет.   -  person L3viathan    schedule 02.02.2015
comment
все, что находится после последней точки, является расширением. неважно, что вы об этом думаете...   -  person Karoly Horvath    schedule 02.02.2015


Ответы (1)


Технически расширения никуда не годятся. Это просто имена файлов с суффиксами для удобства. Даже в Windows вы всегда можете связать определенные расширения с определенными приложениями, что в любом случае должно быть единовременным рассмотрением. Так что, вероятно, вы тратите время не на то, если у вас нет запланированного сопоставления MIME-types с конкретным расширением в Windows.

person activatedgeek    schedule 02.02.2015