我正在努力解决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上)输入我能想到的一切,但我无法运行代码。我应该怎么做才能让这段代码从提示符运行?
答案 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()
应该这样做。