试图通过raw_input将一些字节传递给read()

时间:2012-09-03 23:22:17

标签: python function methods terminology

我为“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"

如何提示脚本用户键入多个字节,并让脚本读出该字节数?

奖金问题:

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

2 个答案:

答案 0 :(得分:2)

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

您还需要将how_far转换为int,然后再将其传递给读取 - 例如使用int(how_far)

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

答案 1 :(得分:0)

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