【问题标题】:Learn Python the Hard Way, Exercise 15艰难地学习 Python,练习 15
【发布时间】:2011-12-04 09:03:52
【问题描述】:

我正在尝试解决 Zed Shaw 的 Learn Python the Hard Way 练习 15 的额外学分问题,但我遇到了一个问题。代码如下:

from sys import argv

script, filename = argv

txt = open(filename)

print "Here's your file %r:" % filename
print txt.read()
print "I'll also ask you to type it again:"
file_again = raw_input("> ")

txt_again = open(file_again)
print txt_again.read()

print txt_again.read()

我了解所有已使用的代码,但额外的学分问题 7 询问:

再次启动python 并在提示符下使用open。请注意如何打开文件并在其中运行read

在第一次使用“python”命令启动 python 之后,我尝试在终端(在 Mac 上)中输入我能想到的所有内容,但我无法让代码运行。我应该怎么做才能让这段代码从提示符下运行?

【问题讨论】:

  • 什么是“我能想到的一切”?你遇到了什么错误?
  • 我刚从 open(xyz.txt)xyz.txt.read() 开始,我会得到 Traceback(最近一次调用最后):文件“”,第 1 行,在 NameError:名称“ex15_sample”未定义。或者我会从 from sys import argv 开始导入 argv 模块,就像在脚本中那样。由于我是初学者,我仍然不太了解从提示符运行代码与从脚本运行代码有何不同。
  • 我现在正在做这个例子,但是当它读回我的文本文件时,我只得到最后一行。有什么建议?谢谢
  • 我仍然没有得到这个额外信用问题的答案。

标签: python


【解决方案1】:

基本上,就像在这个成绩单中一样(我添加了空行以提高可读性):

pax:~$ python 
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> xyz = open ("minimal_main.c")

>>> print xyz.read()
int main (void) {
    return 0;
}

>>> xyz.close()

>>> <CTRL-D>

pax:~$ _

它向您展示的只是您不需要脚本来运行 Python 命令,命令行界面的使用方式几乎相同。

【讨论】:

  • 谢谢。我没有意识到从提示符运行时我应该跳过 argv 模块的导入。
【解决方案2】:

Zed 并没有说要在 Python 中运行 this 特定的代码。显然,该代码从您用于调用脚本的参数中获取 filename 值,如果您只是启动 Python shell,则您没有使用任何参数。

如果你这样做了:

filename = 'myfilename.txt'
txt = open(filename)

那么它会起作用。

【讨论】:

    【解决方案3】:

    我刚开始使用 open(xyz.txt)

    嗯,是的,这当然行不通,因为你没有变量xyz,即使你有,它也没有属性txt。因为它是一个文件名,所以您需要一个 string "xyz.txt",您可以通过将其放在引号中来创建它:'xyz.txt'。请注意,Python 对单引号和双引号的处理或多或少是相同的。与 C++ 和 Java 等语言不同,单个字符没有单独的数据类型 - 它们只是长度为 1 的字符串。

    【讨论】:

    • 我正在寻找有关这些报价的解释,谢谢!
    【解决方案4】:

    在终端运行 Python 后,

    abc = open ("ex15_sample.txt")
    print abc.read()
    

    应该可以。

    【讨论】:

      【解决方案5】:

      print open('ex15_sample.txt').read()

      在终端运行python后,我们将使用open('filename.txt')打开文件,使用点运算符我们可以直接在其上应用read()函数。

      【讨论】:

      • 如果您在那里描述您的代码,这将是一个更好的答案!
      • @Deep 我基本上是一起打开和阅读文件。在终端中运行 python 后,我们将使用open('filename.txt') 打开文件并使用点运算符我们可以直接在其上应用read() 函数。如果您愿意,可以按照其他答案中的说明分别执行这两项操作。
      • @AS 请edit your answer 并包含此信息。
      猜你喜欢
      • 2015-05-01
      • 2013-04-06
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多