我为“Zed Shaw的学习Python艰难之路”做了一些额外的功劳;练习15的“额外功劳”告诉你通读pydoc文件以找到我可以做的其他文件。我有兴趣弄清楚如何让终端使用“read()”打印出一定数量的文本文件字节。我可以在参数中硬编码读取多少字节,但是在尝试提示用户定义字节数时我碰到了一堵墙。
这是我到目前为止的脚本:
from sys import argv
script, filename = argv
txt = open(filename)
print "Here's 24 bytes of your file %r:" % filename
print txt.read(24)
print """What about an arbitrary, not hard-coded number of bytes? Enter the number
of bytes you want read out of the txt file at this prompt, as an integer:"""
how_far = raw_input("> ")
print txt.read(how_far2) # this format makes sense in my head but obviously isn't the done thing.
终端吐出错误:
"NameError: name 'how_far2' is not defined"
如何提示脚本用户键入多个字节,并让脚本读出该字节数?
奖金问题:
答案 0 :(得分:2)
错误消息是因为您在一个地方使用了how_far
而在另一个地方使用了how_far2
。
您还需要将how_far
转换为int
,然后再将其传递给读取 - 例如使用int(how_far)
你会发现它可以被称为传递变量,参数或参数。这些不是Python术语,它们是通用编程术语
答案 1 :(得分:0)
raw_input
返回一个字符串。 file.read
需要一个整数 - 您可能需要在使用之前将raw_input
的输出转换为整数。