2

我正在学习 Python the Hard Way并坚持练习 16 的额外学分。我正在尝试读取我使用主要练习 16 创建的文件。我编写的代码如下:

# pylint: disable-msg=C0103
""" This script reads and prints a file set from the argv """
from sys import argv

filename = argv

txt = open(filename)

print txt.read()

我要阅读的文件是:

Derp Derp
Reading this file
Will it work?

我收到错误:TypeError: coercing to Unicode: need string or buffer, list found但我不确定我的文件如何是列表而不是字符串。

4

3 回答 3

6

要调试,请尝试打印filename

于 2012-05-12T04:02:43.557 回答
3

argv是脚本的参数列表。第一个论点是argv[1]。尝试这个:

from sys import argv

txt = open(argv[1])

print txt.read()

重要说明:列表中的第一项几乎总是第0th 项,argv这是一个例外,因为0th 参数是您的脚本名称。

于 2012-05-12T04:02:36.803 回答
0

我也遇到了同样的错误,但用这段代码解决了它:

from sys import argv

txt = open(argv[1])

print txt.read()
于 2013-10-04T15:08:40.700 回答