Python 非ASCII字符错误

1 投票
2 回答
2139 浏览
提问于 2025-04-17 23:17

我写了一个小的Python代码,目的是获取我的系统信息和磁盘大小。我在这里使用了subprocess模块。

[root@localhost code]# cat pysys.py
#!/usr/bin/python
import subprocess;

def sysinfo():
        subprocess.call(“uname –a”,shell=True)
def diskinfo():
        subprocess.call(“df –h”,shell=True)
def main():
        sysinfo()
        diskinfo()
main()

每当我尝试运行这个代码时,都会出现以下错误:

[root@localhost code]# python pysys.py
  File "pysys.py", line 5
SyntaxError: Non-ASCII character '\xe2' in file pysys.py on line 5, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
[root@localhost code]#

编辑:

[root@localhost code]# cat pysys.py
#!/usr/bin/python
import subprocess;

def sysinfo():
        subprocess.call("uname –a",shell=True)
def diskinfo():
        subprocess.call("df –h",shell=True)
def main():
        sysinfo()
        diskinfo()
main()

[root@localhost code]# python pysys.py
  File "pysys.py", line 5
SyntaxError: Non-ASCII character '\xe2' in file pysys.py on line 5, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
[root@localhost code]#

我是不是漏掉了什么?请告诉我。

谢谢。

2 个回答

3

你的引号看起来很奇怪,使用 Shift+2 键就可以了,也就是输入一个 " 符号。

这个符号在 ASCII 码中是 34,在十六进制中是 22,在八进制中是 042。

如果你在用 vim 编辑器,可以通过按 ga 来查看光标下的字符值。

2

看起来你在使用一些非ASCII字符,比如说。这种情况通常发生在你从别的地方复制内容的时候。

所以你可以把你的代码改成下面这样:

#!/usr/bin/python
import subprocess;

def sysinfo():
        subprocess.call("uname -a",shell=True)
def diskinfo():
        subprocess.call("df -h",shell=True)
def main():
        sysinfo()
        diskinfo()
main()

区别就在于-。你现在用的是

撰写回答