Эта функция не фильтрует файлы, которые соответствуют префиксу (~ $) или расширению (eval (не '.xlsm')), и не фильтрует папки.
Все 3 попытки дали одинаковый результат. Я довольно новичок в этом материале Python, поэтому, пожалуйста, дайте мне понять, что я должен делать ...
ПОПЫТКА 1
def list_of_files(folder_path, prefix_to_filter_out, extension_to_filter_out):
...
result = dict([(file, None) for file in os.listdir(folder_path)
if os.path.isdir(file) is False and
file.startswith(prefix_to_filter_out) is False and
file.endswith(extension_to_filter_out) is False])
...
return result
ПОПЫТКА 2
def list_of_files(folder_path, prefix_to_filter_out, extension_to_filter_out):
...
result = dict([(file, None) for file in os.listdir(folder_path)
if not(os.path.isdir(file)) and
not(file.startswith(prefix_to_filter_out)) and
not(file.endswith(extension_to_filter_out))])
...
return result
ПОПЫТКА 3
def list_of_files(folder_path, prefix_to_filter_out, extension_to_filter_out):
...
result = dict([(file, None) for file in os.listdir(folder_path)
if not(os.path.isdir(file))
if not(file.startswith(prefix_to_filter_out))
if not(file.endswith(extension_to_filter_out))])
...
return result
Я ожидаю, что это отфильтрует временные файлы на Google Диске, начинающиеся с '~ $', отфильтрует папки и отфильтрует все, кроме книги Excel.
Тем не менее, это включает в себя все, даже папки.
Это часть приложения, которое выскакивает окно сообщения каждый раз, когда файл в указанной папке добавляется / удаляется. Это очень быстро раздражает, потому что оно появляется каждый раз, когда кто-то открывает или закрывает файл на Google Диске.
Спасибо за помощь!
ПОПЫТКА 4
def list_of_files(folder_path, prefix_to_filter_out, extension_to_focus_on):
# Example:
# folder_path = '/Google Drive/Box List/New Jobs',
# prefix_to_filter_out = '~$',
# extension_to_focus_on = '.xlsm'
result = {}
for file in os.listdir(folder_path):
if os.path.isdir(os.path.join(folder_path, file)) is True:
continue
if file.startswith(prefix_to_filter_out):
continue
if not file.endswith(extension_to_focus_on):
continue
result[file] = None
return result
# Expected result: {
# 1741A Tegan Lee.xlsm,
# 1741B Tegan Lee.xlsm,
# 1741C Tegan Lee.xlsm,
# 1742A WIZARD RENOVATIONS.xlsm,
# 1742B WIZARD RENOVATIONS.xlsm}
# Actual result: {
# 1741A Tegan Lee.xlsm,
# 1741B Tegan Lee.xlsm,
# 1741C Tegan Lee.xlsm,
# 1742A WIZARD RENOVATIONS.xlsm,
# 1742B WIZARD RENOVATIONS.xlsm
# ~$1742A WIZARD RENOVATIONS.xlsm}
В результате больше нет подпапок, но префикс не фильтруется должным образом.
Этот последний файл нежелателен в результате ... Это временный файл, который Google Drive создает при открытии файла.
Тем не менее, когда я ввожу префикс вручную так: file.startswith ('~ $'), он работает. Когда я печатаю (prefix_to_filter_out), он выплевывает ~ $, поэтому это не ошибка ввода.