2016-08-19 7 views
0

ここにコードがあります。Pythonの難しい方法を学ぶ(演習20)、実行時に奇妙なシンボルがある

from sys import argv 

script, input_file = argv 

def print_all(f): 
    print f.read() 

def rewind(f): 
    print f.seek(0) 

def print_a_line(line_count, f): 
    print line_count, f.readline() 

current_file = open(input_file) 

print "First, we'll print the whole file.\n" 

print_all(current_file) 

print "Now let's rewind." 

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) 

ターミナル(OS X)で実行したときのコードです。

First, we'll print the whole file. 

{\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 
{\fonttbl\f0\fswiss\fcharset0 Helvetica;} 
{\colortbl;\red255\green255\blue255;} 
\margl1440\margr1440\vieww10800\viewh8400\viewkind0 
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 

\f0\fs24 \cf0 example 1\ 
example 2\ 
example 3} 
Now let's rewind. 
None 
Let's print three lines. 
1 {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 

2 {\fonttbl\f0\fswiss\fcharset0 Helvetica;} 

3 {\colortbl;\red255\green255\blue255;} 

ここでは何が起こっているようですか? http://learnpythonthehardway.org/book/ex20.htmlのコードをコピーして貼り付けて、私が何か間違っているかどうかを確認することもできますが、同じことがありました。

+1

実際にプレーンテキストファイルを読んでいますか?これは、ワープロ文書形式などのように見えます。 – user2357112

+0

また、あなたのバージョンに余分な 'print'があると思ったように、元のコードをコピー・ペーストしていないことがわかりました。 – user2357112

+0

あなたがそれを指摘するまで私はそれを知らなかった。ありがとうございました!なぜあなたはプリントのいくつかの表現が異なっていたのだろうかと疑問に思っていたのは、ファイルをあまり変えずに私自身の性格を持たせたいからです。 –

答えて

2

あなたはTextEditでファイルを編集しました - pythonはファイルのRTFフォーマットを反映するバイトを吐き出しています。 TextEditから保存する前に、「書式」>>「テキストファイルを作成」​​を選択してください。

+0

これはうまくいった。ありがとうございました! –

0

ワードプロセッサを使用して入力ファイルを作成しました。あなたの入力ファイルを作成するためにテキストエディタ(Windowsではメモ帳、私はあなたがOS Xで持っているかわからない)を使用してください。

関連する問題