2016-05-16 2 views
-1

В настоящее время я пишу скрипт, который будет анализировать файл для определенной строки и переименовывать файл в эту строку. Однако файлы, с которыми работает этот скрипт, не имеют расширений файлов. Они читаются в любом текстовом редакторе, но в их окне свойств они не имеют тип файла, отличный от общего типа «ФАЙЛ».Python: Как я могу открыть и прочитать файлы в каталоге, у которого нет расширения файла (Windows)?

Я пробовал исследовать это в течение нескольких дней и не смог найти какую-либо документацию, связанную с моей проблемой. Итак, есть ли способ открытия, чтения, переименования и сохранения файла python, который не имеет указанного расширения файла?

+0

Вы пробовали os.rename()? – flyingmeatball

+0

Почему вы думаете, что имеет расширение? –

+0

_ есть ли какой-либо метод открытия, чтения, переименования и сохранения файла python, который не имеет указанного расширения файла? _ Yes, такая же функция, как для манипулирования файлами с расширениями. См. [Объекты файла] (https://docs.python.org/2/library/stdtypes.html#file-objects) и [os] (https://docs.python.org/2/library/os.html). –

ответ

0

0 Вы можете open() или os.rename() все файлы, к которым у вас есть доступ. Неважно, если у него нет расширения.


Если вы не знаете, который файлы переименовывать, а затем просто открыть все файлы, читать их содержание и действовать на файлы, которые соответствуют тому, что вы ищете.

import os 

# Get a list of all files under the current directory 
flist = [] 
for root, dirs, files in os.walk('.'): 
    flist += [os.path.join(root, f) for f in files] 

# Go over each file and see if it contains the string foo 
want = 'foo' 
targets = [] 
for path in flist: 
    with open(path) as df: 
     data = df.read() 
    if want in data: 
     targets.append(path) 
# The targets list now contains the paths of all the files that contain foo. 
0

Посмотрите на this answer.

Когда вы перебираете список файлов, вы можете просто проверить, не является ли расширение пустым.

def file_has_no_extension(file_path): 
    """ 
    Return true if and only if the file has no extension. 
    """ 
    filename, file_extension = os.path.splitext('/path/to/somefile.ext') 

    return not file_extension 

Для остальной части вашего вопроса просто взглянуть на учебники как this.