艰苦学习Python,练习15

时间:2011-10-10 09:25:19

标签: python

我正在努力解决Zed Shaw的“学习Python困难之路”的练习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上)输入我能想到的一切,但我无法运行代码。我应该怎么做才能让这段代码从提示符运行?

5 个答案:

答案 0 :(得分:6)

Zed没有说要在Python中运行这个特定的代码片段。显然,该代码从您用于调用脚本的参数中获取filename值,如果您刚刚启动Python shell,则表示您没有使用任何参数。

如果你这样做了:

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

然后它会起作用。

答案 1 :(得分:2)

  

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

嗯,是的,当然这不会起作用,因为你没有变量xyz,即使你做了,它也没有属性txt。由于它是文件名,因此您需要一个字符串“xyz.txt”,您可以通过将其放在引号中来创建:'xyz.txt'。请注意,Python对单引号和双引号的处理方式大致相同;与C ++和Java等语言不同,单个字符没有单独的数据类型 - 它们只是长度为1的字符串。

答案 2 :(得分: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命令,命令行界面可以大致相同的方式使用。

答案 3 :(得分:0)

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

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

答案 4 :(得分:-1)

在终端中运行Python后,

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

应该这样做。