艰难学Python,第15个练习

6 投票
5 回答
7766 浏览
提问于 2025-04-17 04:00

我正在尝试解决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 吗?

我在终端(在mac上)启动python后,尝试输入我能想到的所有内容,但就是无法运行这段代码。我应该怎么做才能在提示符下运行这段代码呢?

5 个回答

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命令,命令行界面也可以用类似的方式来操作。

2

我刚开始用open(xyz.txt)

嗯,当然这样是行不通的,因为你并没有一个叫xyz的变量,即使你有,它也不会有一个叫txt的属性。因为这是一个文件名,你需要的是一个字符串“xyz.txt”,你可以通过把它放在引号里来创建:'xyz.txt'。注意,Python对单引号和双引号的处理基本是一样的;和C++或Java等语言不同,Python没有单独的字符数据类型——它们只是长度为1的字符串。

7

Zed并没有说要在Python里面运行这段特定的代码。很明显,这段代码是从你调用脚本时使用的参数中获取filename的值。如果你只是刚打开Python的命令行,那你就没有使用任何参数。

如果你使用了:

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

那么它就能正常工作了。

撰写回答