2012-05-24 32 views
0

我試圖從一個文件的讀取和使用寫入到另一個文件:讀取和寫入文件,正確縮進和語法高亮

with open('example2') as inpf, open('outputrt','w') as outf: 
    for l in inpf: 
     outf.write(l) 

但我在1號線即

得到一個語法錯誤

"with open('example2') as inpf, open('outputrt','w') as outf:" pointing at "inpf,"

我的python版本是2.6。語法中是否有錯誤?

+0

看看http://stackoverflow.com/questions/3791903/which-python-version-need-from-future-import-with-statement(短版:從__future__進口with_sta加上' tement'在腳本的頂部)。 –

+1

如果這真的是你的代碼,你最好用'shutil.copyfile'。 – sberry

+0

此代碼適用於我.. Python 2.7.2 – Ansari

回答

2

該語法僅支持2.7+。
在2.6,你可以這樣做:

import contextlib 

with contextlib.nested(open('example2'), open('outputrt','w')) as (inpf, outf): 
    for l in inpf: 
     outf.write(l) 

或者,它可能看起來更清潔,以你這樣做(這將是我的偏好):

with open('example2') as inpf: 
    with open('outputrt','w') as outf: 
     for l in inpf: 
      outf.write(l) 
+0

謝謝。它的工作:) – learner

+0

歡呼,隊友。快樂的編碼。 – bernie

0

在蟒蛇versons < = 2.6,則可以使用

inPipe = open("example2", "r") 
outPipe = open("outputrt", "w") 
for k in inPipe: 
    outPipe.write(k)