пожалуйста, дайте мне знать, если на этот вопрос уже был дан ответ.Я оглянулся вокруг и не думаю, что нашел свое точное положение раньше.
Цель
В любом случае, мне нужно найти в каталоге строку из списка поиска.Я получил его, где, если я ввожу строку вручную, это работает, но не, если я пытаюсь извлечь из списка, проанализированного из CSV.
Желаемый результат:
names (CSV Input):
username, 123456, 453125
directory structure and output using lookup list:
C:\path\to\cwd\123456\123456.xlxs <-- should match
C:\path\to\cwd\123456\user.docx <-- should match
C:\path\to\cwd\453125\files\randomfilename.docx <-- should match
C:\path\to\cwd\365897\365897.pdf <-- should not match
C:\path\to\cwd\usermcuser\365897\filename.pdf <-- should not match
Код пока:
with open('Path\to\CSV.csv', encoding='UTF-8') as names_file:
names= [line.strip() for line in names_file] #Open CSV and get each string from the first column
source = os.getcwd()
for r, d, f in os.walk(source):
for file in f:
for name in names:
if name in file: #works correctly if I do not use for loop and type in an element from the list
print(os.path.join(r, file))
Проблема:
при добавлении моего for loop
для поиска в моем списке имен, он получает все результаты из каталога, а не только совпадения.Это работает правильно, если я просто скажу это
for r, d, f in os.walk(source):
for file in f:
if "123456" in file:
print(os.path.join(r, file))