TypeError:'encoding'是一个无效的关键字参数ex23.py

时间:2018-01-08 00:16:29

标签: python powershell utf-8

第一个问题。我正在努力学习python,我正在练习23.我输入的代码与Zed所说的完全是他的书。我收到错误消息。我在谷歌和这里搜索了答案,但我仍然没有发现任何适用的。这是我的代码,我试图通过窗口的电源shell运行,如下所示:

import sys
script, input_encoding, error = sys.argv


def main(language_file, encoding, errors):
    line = language_file.readline()

    if line:
        print_line(line, encoding, errors)
        return main(language_file, encoding, errors)

def print_line(line, encoding, errors):
    next_lang = line.strip()
    raw_bytes = next_lang.encode(encoding, errors=errors)
    cooked_string = raw_bytes.decode(encoding, errors=errors)

    print(raw_bytes, "<=========>", encoding = cooked_string)


languages = open("languages.txt", encoding="utf-8")


main(languages, input_encoding, error)

当我做他在power shell中提出的要求时,以前一直有效:

Python ex23.py utf-8 strict

我明白了:

PS C:\Users\...\save> python ex23.py utf-8 strict
Traceback (most recent call last):
  File "ex23.py", line 23, in <module>
    main(languages, input_encoding, error)
  File "ex23.py", line 9, in main
    print_line(line, encoding, errors)
  File "ex23.py", line 17, in print_line
    print(raw_bytes, "<=========>", encoding = cooked_string)
TypeError: 'encoding' is an invalid keyword argument for this function
PS C:\Users\...\save>

我正在尝试阅读并理解错误。什么是'编码'?这对于这三行代码是否意味着,它不了解'编码'是什么?我们不是把它说成是一个论点吗?

Zed实际上总是使用稍微不同的命令行cmdlet $ Python3.6 ex23.py utf-8 strict

我试过调用它python3(就像其他建议的stackoverflow帖子一样)和python3.6(就像他一样)有和没有$符号。我以为我会提到这一点,因为我在Stack Overflow上看到其他地方可以解决这个问题,但是这些格式中的每一种都给了我shell中的红色错误文本,并且我已经让所有其他的练习以我的方式工作了。一直在做。我用红色文字得到以下内容。

"python3 : The term 'python3' is not recognized as the name of a cmdlet, function, script
file, or operable program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At line:1 char:1"

如果我使用美元符号,则相同。

我肯定在使用Python 3,因为当我从powershell运行python时,它说它是python3.6.4并且我最近刚刚下载了python,获得了最新版本。

提前感谢您的帮助。

0 个答案:

没有答案