Я пытаюсь работать с наборами и методом пересечения, чтобы найти, какие элементы в списке файлов в Юникоде имеют определенные символы. Цель состоит в том, чтобы заменить эти символы другими символами, поэтому я сделал словарь ключей и значений, где ключ - это то, что будет заменено, а значения - это то, что будет заменено. Однако, когда я пытаюсь создать набор пересечений путей с символами, подлежащими замене, это приводит к пусту. Что я делаю не так? У меня есть работа с циклами, но я хотел бы сделать это максимально эффективным. Обратная связь приветствуется!Python 2.7 - Перекрестный юникодный словарь с Unicode-списком
Код:
# -*- coding: utf-8 -*-
import os
def GetFilepaths(directory):
"""
This function will generate all file names a directory tree using os.walk.
It returns a list of file paths.
"""
file_paths = []
for root, directories, files in os.walk(directory):
for filename in files:
filepath = os.path.join(root, filename)
file_paths.append(filepath)
return file_paths
# dictionary of umlauts (key) and their replacements (value)
umlautDictionary = {u'Ä': 'Ae',
u'Ö': 'Oe',
u'Ü': 'Ue',
u'ä': 'ae',
u'ö': 'oe',
u'ü': 'ue'
}
# get file paths in root directory and subfolders
filePathsList = GetFilepaths(u'C:\\Scripts\\Replace Characters\\Umlauts')
print set(filePathsList).intersection(umlautDictionary)
Что возвращает 'filePathsList'? – Vaulstein
список полных путей к файлу –
вы пробовали 'set (filePathsList.intersection (umlautDictionary))'? – Onilol