main()中的逻辑似乎没有达到其他条件 - 为什么

时间:2017-09-16 20:55:16

标签: python comparison comparison-operators

下面有一个函数,它查看路径,并确定使用了多少磁盘空间。

def check_disk_space():
    import os
    cmdparts = ["echo $(df --output=pcent ", ") | tr -d 'Use% '"]
                check_used_disk_space_cmd =  cmdparts[0] + "a/path" + cmdparts[1]
    os.system(check_used_disk_space_cmd)

def main():
    used_disk_space = check_disk_space()
    print type( used_disk_space )
    if  int(used_disk_space) > 80:
        print "need more"
    else:
        print "plennnty!"
        print type( used_disk_space )
main()

check_disk_space()正在返回85

更新:看来check_disk_space()正在创建一个NoneType对象?我收到此错误: TypeError: int() argument must be a string or a number, not 'NoneType'

1 个答案:

答案 0 :(得分:1)

我在代码中更改了一些内容。

  1. 您没有从函数中返回任何值
  2. import os可以移到文件顶部
  3. 注意:我已添加大括号以打印声明。

    import os
    
    def check_disk_space():
        """
        check_disk_space() checks the available space of a specified path
        """
        cmdparts = ["echo $(df --output=pcent ", ") | tr -d 'Use% '"]
        check_used_disk_space_cmd =  cmdparts[0] + "C:/Users/jgosalia/Desktop" + cmdparts[1]
        return os.system(check_used_disk_space_cmd)
    
    def main():
        space = check_disk_space()
        print("Space : " + str(space))
        if space > 95:
            print ("need more")
        else:
            print ("plennnty!")
    
    main()
    

    示例运行1:

    ===== RESTART: C:/filesOperation.py =====
    Space : 255
    need more
    

    if condition>更改为<以检查其他情况并且确实有效。

    示例运行2:

    ===== RESTART: C:/filesOperation.py =====
    Space : 255
    plennnty!