2015-11-24 3 views
0

У меня есть базовый скрипт, который я хочу проверить каждый каталог, подкаталог и файл, начиная с root, и если файл заканчивается на .sh, он должен проанализировать файл для строки. Вот код:Python directory walk file parse script синтаксическая ошибка

for root, dirs, files in os.walk("/"): 
    for file in files: 
     if file.endswith(".sh"): 
      for line open(file): 
       if "data in on" in line: 
        print(os.path.join(root, file)) 

Он бросает:

for line open(file): 
      ^
SyntaxError: invalid syntax 

Я думаю, что проблема с «файл», но я не совсем уверен, потому что я думал, что я мог бы использовать файл в качестве переменной. Любое понимание было бы оценено.

+4

вы упускаете 'в' как в' для строки в открытом (файле): ' –

+0

@RNar Annnd теперь это thowing для линии в открытой (файле): IOError: [Errno 2] НЕТ такого файла или каталога: 'tester.sh' – Dimpermanence

+0

его использование относительных путей, вы должны добавить свой корень с помощью 'os.path.join (root, file)' –

ответ

0

Вы должны пройти полный путь к open:

for root, dirs, files in os.walk("/"): 
    for file in files: 
     if file.endswith(".sh"): 
      path = os.path.join(root, file) 
      for line in open(path): 
       if "data in on" in line: 
        print(path) 

 Смежные вопросы

  • Нет связанных вопросов^_^