私はプログラミングが初めてで、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 ファイルを実行しただけなので意味がありません。