2

Learn 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:Unicodeへの強制:文字列またはバッファが必要です。リストが見つかりましたが、ファイルが文字列ではなくリストであるかどうかわかりません。

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項目ですが、 th引数はスクリプト名であるargvため、例外です。0

于 2012-05-12T04:02:36.803 に答える
0

私も同じエラーに直面しましたが、このコードで解決しました:

from sys import argv

txt = open(argv[1])

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