Я решил эту проблему, выполнив следующие действия:
default_authentication_plugin = mysql_native_password
в раздел [mysqld] my.cnf CREATE USER
'root'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO
'root'@'localhost';
, а затем FLUSH PRIVILEGES;
from os.path import splitext
list1 = ['image1.png', 'image2.png', 'image3.png', 'image3.png', 'image4.png', 'image3.jpg']
list2 = ['image1.pdf', 'image2.eps', 'image3.ps', 'image5.doc']
# Create a lookup set of the document names sans extensions.
documents = set([splitext(filename)[0] for filename in list2])
# Compare each stripped filename in list1 to the list of stripped document filenames.
matches = [filename for filename in set(list1) if splitext(filename)[0] in documents]
print matches
Выход:
['image1.png', 'image2.png', 'image3.png', 'image3.jpg']
Обратите внимание, что при необходимости его нужно будет адаптировать для файлов с несколькими расширениями, например .tar.gz
(filename.partition(".")[0]
выполнит трюк). Но это означало бы, что точки не могут быть помещены нигде в имени файла, потому что первая точка теперь ограничивает расширение.
Используйте понимание списка с помощью set
:
list1 = ["image1.png", "image2.png", "image3.png", "image3.png"]
list2 = ["image1.pdf", "image2.eps", "image3.ps"]
print [x for x in set(list1) for y in set(list2) if x.split('.')[0] == y.split('.')[0]]
Выход:
['image1.png', 'image2.png', 'image3.png']
def filename(name):
return name.split('.')[0]
list2_filenames = [filename(name) for name in list2]
found_filenames = [name for name in list1 if filename(name) in list2_filenames]
Вы можете попробовать использовать set
для получения уникальности и понимания списка для сравнения:
from os.path import splitext
list1 = ['image1.png', 'image2.png', 'image3.png', 'image3.png']
list2 = ['image1.pdf', 'image2.eps', 'image3.ps']
reference = set([splittext(item)[0] for item in list2]) # Strip the extension
outcome = set([item for item in list1 if splittext(item)[0] in reference]) # compare
print(outcome)
>>>
{'image3.png', 'image2.png', 'image1.png'}