为什么我在 python 2.7 中遇到这个缩进错误? [重复]

问题描述 投票:0回答:2

你好,我在 python 2.7 上遇到缩进错误
我的程序如下所示:

import sys, os
import subprocess
from threading import Thread
from re import split

def GetProcesses(Clean=True):
    #
    if Clean == True:
        #
        #
        x = subprocess.Popen(["sudo", "ps", "aux"], stdout=subprocess.PIPE, shell=True)
        (out, err) = x.communicate()
        print(out)
        print(out.split("\n"))
        print("--------------")
        Processes = out.split("\n")
        print(Processes)
        print("------")
        print(Processes[0])
        print("----------")
        Header = Processes[0]
        Process_list = Processes.remove(Processes[0])
        return((Header, Process_list))
    #
    else:
        #
        #
        if Clean == True: #added problem so future SE users can see it
        x = subprocess.Popen(["ps", "aux"], stdout=subprocess.PIPE, shell=True)
        (out, err) = x.communicate()
        return(out)

我不明白这个错误,我尝试过取消每行 1 个空格的缩进,缩进回原来的值,并添加 1 个空格,但它总是说它要么需要缩进,要么意外缩进。 P.S 我只使用空格。

实际错误:

  File "MemoryHandling.py", line 31
    x = subprocess.Popen(["ps", "aux"], stdout=subprocess.PIPE, shell=True)
    ^
IndentationError: expected an indented block

在提出这个问题期间和之前,我检查了几个在线问题/来源(主要是 SE)是否存在此错误(如下),我发现它们是针对具体情况的,被否决/未回答,或者没有用:
-- Python 缩进错误 # 我正在使用空格
-- Python 2.7 缩进错误 # 我已经多次手动检查缩进,并尝试使用 tab 键
-- 意外的缩进错误,但缩进看起来正确 # 再次不使用制表符和空格
-- 代码缩进错误,代码缩进? # 未回答(bug?)
-- 没有缩进错误时出现 Python 缩进错误 # 再次不使用制表符和空格

python python-2.7 indentation nano
2个回答
1
投票
import sys, os
import subprocess
from threading import Thread
from re import split

#Actual Code:
def GetProcesses(Clean):
    #
    if Clean == True:
        #
        #
        x = subprocess.Popen(["sudo", "ps", "aux"], stdout=subprocess.PIPE, shell=True)
        (out, err) = x.communicate()
        print(out)
        print(out.split("\n"))
        print("--------------")
        Processes = out.split("\n")
        print(Processes)
        print("------")
        print(Processes[0])
        print("----------")
        Header = Processes[0]
        Process_list = Processes.remove(Processes[0])
        return((Header, Process_list))
    #
    else:
        #
        #
        x = subprocess.Popen(["ps", "aux"], stdout=subprocess.PIPE, shell=True)
        (out, err) = x.communicate()
        return(out)

1
投票

问题就在这里。在

if
部分之后,没有提供缩进。

else:
    if Clean == True: #added problem so future SE users can see it
        x = subprocess.Popen(["ps", "aux"], stdout=subprocess.PIPE, shell=True)
        (out, err) = x.communicate()
        return(out)
© www.soinside.com 2019 - 2024. All rights reserved.