我是编程新手,我正试图通过http://learnpythonthehardway.org/自学Python。
在练习20中,我们被告知制作一个这样的剧本:
from sys import argv
script, input_file = argv
def print_all(f):
print f.read()
def rewind(f):
f.seek(0)
def print_a_line(line_count, f):
print line_count, f.readline()
current_file = open(input_file)
print "First let's print the whole file:\n"
print_all(current_file)
print "Now let's rewind, kind of like a tape."
rewind(current_file)
print "Let's print three lines:"
current_line = 1
print_a_line(current_line, current_file)
current_line = current_line + 1
print_a_line(current_line, current_file)
current_line = current_line + 1
print_a_line(current_line, current_file)
然而,当我通过终端运行它时,它返回,“IOError:文件未打开以供阅读。”我真的很困惑,也不确定“不公开”是什么意思。以下是回溯消息的完整帐户:
Traceback (most recent call last):
File "ex20.py", line 18, in <module>
print_all(current_file)
File "ex20.py", line 6, in print_all
print f.read()
IOError: File not open for reading
我检查过该文件是否存在。有人可以帮忙吗?非常感谢!
更新
我通过创建一个单独的文件夹解决了这个问题,从而将新的.py和.txt文件自行隔离到一个新文件夹中。我想知道以前的.py文件是否在这个中扮演了一个角色?我之前也写了一个截断脚本,但它没有意义,因为我只执行了新的python文件。