0

我为“Zed Shaw 的 Learn Python The Hard Way”做了一些额外的功劳;练习 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"

如何提示脚本的用户输入字节数,并让脚本读出该字节数?

奖金问题:

  1. 我在这里尝试做的事情的实际术语是什么?将变量传递给方法?将变量传递给函数?
  2. 字节数是读取的参数吗?这是正确的术语吗?
  3. 更一般地说,获取 python 术语词汇表的好地方是什么?Stack Overflow 会推荐任何其他书籍,或者在某处的在线文档中推荐一些书籍?真正寻找没有假设,没有先验知识,“像我五岁一样向我解释”的粒度级别......半小时的网络搜索并没有太大帮助。尽管在网络上进行了大量的搜索,但我还没有发现真正将术语集中到任何一个在线地方。
4

2 回答 2

2

错误消息是因为您how_far在一个地方和另一个地方使用过how_far2

您还需要在将how_farint传递给 read 之前将其转换为 -int(how_far)例如使用

您会发现它可以称为传递变量、参数或参数。这些不是 Python 术语,它们是通用编程术语

于 2012-09-03T23:30:24.313 回答
0

raw_input返回一个字符串。 file.read需要一个整数——可能你只需要raw_input在使用它之前将输出转换为整数。

于 2012-09-03T23:28:51.513 回答