Как исключить определенное имя файла из кода на python

#python-2.7

#python-2.7

Вопрос:

Я работаю над проектом Python шифрование / дешифрование файла при шифровании всего каталога файла, включая введите описание изображения здесь, основной файл кода python также шифруется, т. е F_lock.py

код:

 def encrypt_all_files(self):
        dirs = self.getAllFiles()
        for file_name in dirs:
            self.encrypt_file(file_name)
  

Итак, как можно исключить это F_lock.py file , чтобы оно не было зашифровано

Извините, я новичок в Python, я знаю, что это, вероятно, базовый.

Заранее спасибо.

Комментарии:

1. Пожалуйста, правильно отформатируйте свой код; используйте блок кода ( {} значок) для кода, например.

2. Внешний образ очень неудобен. Либо включите изображение в свой вопрос, но в этом случае изображение практически ничего не добавляет к тому, что вы уже сформулировали словами. Просто удалите ссылку на изображение.

3. self.getAllFiles() это не распространенный метод, поэтому мы не можем помочь вам, не увидев больше кода.

4. Почему бы, однако, не поместить if инструкцию в цикл for и не проверить, что file_name не равно файлам, которые вы не хотите включать?

Ответ №1:

Не так много информации дается о self.getAllFiles() и self.encrypt_file(file_name) . Мой ответ основан на:

 self.getAllFiles() # Return list of files with complete file address like C:Folderfile.py
  

и

 self.encrypt_file(file_name) # Take input file complete address
  

В таком случае вам нужно узнать имя файла из полного адреса файла, что можно сделать с помощью os библиотеки, подобной приведенной ниже:

 def encrypt_all_files(self):
        dirs = self.getAllFiles()
        for file_name in dirs:
            if not os.path.basename(file_name) == 'F_lock.py':
                self.encrypt_file(file_name)
  

Вы должны принять решение на основе содержимого в dirs , если это полный адрес, тогда вы можете использовать упомянутый подход. В общих чертах, вы можете проверить file_name так же просто, как string в Python.

Ответ №2:

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

if not file_name.startswith("F_lock.py"):
# rest of the code