2017-02-17 3 views
1

У меня есть сценарий питона, который содержит следующие совместительству Python правильно отступы

import csv 
import mechanize 

""" 
some code here 
""" 

with open('data2.csv') as csvfile: 
    readCSV = csv.reader(csvfile, delimiter=',') 
    for row in readCSV: 
     response2 = browser.open(surl+"0"+row[0]) 
     str_response = response2.read() 
     if "bh{background-color:" in str_response : 
      print "Not Found" 
     else : 

      print "Found " + row[0] 
      s_index=str_response.find("fref=search")+13 
      e_index=str_response.find("</a><div class=\"bm bn\">") 
      print str_response[s_index:e_index] 

Когда я пытаюсь запустить этот файл, он показывает, что есть ошибка в строке

str_response = response2.read()

It says-

str_response = response2.read() ^IndentationError: unexpected indent

Я новичок в Python и не могу понять, что это правильный отступ для этой части кода. Кто-нибудь знает, что я здесь делаю неправильно?

+3

Вы, вероятно, смесительные пробелы и табуляции отступ. – Carcigenicate

+1

смешанные вкладки и пробелы? –

+1

Возможно, у вас есть сочетание вкладок и пробелов перед ним. Скопируйте все пробелы из предыдущей строки и замените их пробелом перед str_response. – zwer

ответ

4

Я скопировал ваш код через режим редактирования сообщений, и, как говорили другие, у вас есть смешанные вкладки и пробелы для вашего отступа. В Python 3 вам нужно использовать тот или иной, но не тот и другой.

Вот исходный код с закладками помечаются как [TB]

import csv 
import mechanize 

""" 
some code here 
""" 

with open('data2.csv') as csvfile: 
    readCSV = csv.reader(csvfile, delimiter=',') 
    for row in readCSV: 
     response2 = browser.open(surl+"0"+row[0]) 
[TB][TB]str_response = response2.read() 
[TB][TB]if "bh{background-color:" in str_response : 
[TB][TB][TB]print "Not Found" 
[TB][TB]else : 

[TB][TB][TB]print "Found " + row[0] 
[TB][TB][TB]s_index=str_response.find("fref=search")+13 
[TB][TB][TB]e_index=str_response.find("</a><div class=\"bm bn\">") 
[TB][TB][TB]print str_response[s_index:e_index] 

и здесь тот же код, используя 4 пробела вместо вкладок:

import csv 
import mechanize 

""" 
some code here 
""" 

with open('data2.csv') as csvfile: 
    readCSV = csv.reader(csvfile, delimiter=',') 
    for row in readCSV: 
     response2 = browser.open(surl+"0"+row[0]) 
     str_response = response2.read() 
     if "bh{background-color:" in str_response : 
      print "Not Found" 
     else : 

      print "Found " + row[0] 
      s_index=str_response.find("fref=search")+13 
      e_index=str_response.find("</a><div class=\"bm bn\">") 
      print str_response[s_index:e_index] 
+0

Спасибо! Я совершенно не знал о пробелах и вкладках. Теперь работает! –

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