这是我的代码......我收到了缩进错误,但我不知道为什么会这样。
- >
# loop
while d <= end_date:
# print d.strftime("%Y%m%d")
fecha = d.strftime("%Y%m%d")
# set url
url = 'http://www.wpemergencia.omie.es//datosPub/marginalpdbc/marginalpdbc_' + fecha + '.1'
# Descargamos fichero
response = urllib2.urlopen(url)
# Abrimos fichero
output = open(fname,'wb')
# Escribimos fichero
output.write(response.read())
# Cerramos y guardamos fichero
output.close()
# fecha++
d += delta
答案 0 :(得分:47)
使用
运行程序python -t script.py
如果您有混合标签和空格,则会发出警告。
在* nix系统上,您可以通过运行
查看选项卡的位置cat -A script.py
您可以使用命令
自动将标签转换为4个空格expand -t 4 script.py > fixed_script.py
PS。编程时一定要使用编程编辑器(例如emacs,vim),而不是文字处理器。编程编辑器不会出现这个问题。
PPS。对于emacs用户, M-x whitespace-mode
将在emacs缓冲区中显示与cat -A
相同的信息!
答案 1 :(得分:8)
在notepad ++中查找所有选项卡并替换为4个空格。它工作正常。
答案 2 :(得分:7)
检查是否混合了标签和空格,这是缩进错误的常见原因。
答案 3 :(得分:3)
您不能将标签和空格混合以进行标识。最佳做法是将所有标签转换为空格。
如何解决这个问题?好吧,只需删除每行之前的所有空格/制表符,并将它们统一转换为制表符或空格,但不要混合。最佳解决方案:在编辑器中启用将任何选项卡自动转换为空格的选项。
另请注意,您的实际问题可能在于此块之前的行,并且python会在此处抛出错误,因为前导无效缩进与以下标识不匹配!
答案 4 :(得分:0)
只需复制您的脚本并放在&#34;&#34;&#34;你的整个代码&#34;&#34;&#34; ......
在变量中指定此行..比如,
a = """ your entire code """
print a.replace(' ',' ') # first 4 spaces tab second four space from space bar
print a.replace('here please press tab button it will insert some space"," here simply press space bar four times")
# here we replacing tab space by four char space as per pep 8 style guide..
现在执行此代码,在sublime中使用ctrl + b,现在它将在控制台中打印缩进代码。那是