我正在努力通过以艰难的方式学习Python 并坚持练习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:强制转换为Unicode:需要字符串或缓冲区,找到列表但我不确定我的文件是列表而不是字符串。
答案 0 :(得分:6)
要进行调试,请尝试打印filename
答案 1 :(得分:4)
argv
是脚本的参数列表。第一个参数是argv[1]
。试试这个:
from sys import argv
txt = open(argv[1])
print txt.read()
重要说明:几乎所有列表中的第一项都是0
项,argv
是一个例外,因为0
参数是你的脚本名称。
答案 2 :(得分:0)
我也遇到了同样的错误,但用这段代码解决了它:
from sys import argv
txt = open(argv[1])
print txt.read()