艰难学Python,第15个练习
我正在尝试解决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)
那么它就能正常工作了。