2016-08-19 59 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中有什麼)來創建你的輸入文件。