2016-11-10 103 views
0

我是python的新手。我在file = file_out上收到語法錯誤。下面是 是錯誤,那麼代碼是在那之後。我一直在複製和粘貼來自互聯網的代碼。 ^在打印行上的= file = file_out之間。如何解決打印文件中的語法錯誤= linux中的文件

錯誤:

File "./xxx.py", line 18
print ("%s"%(line), file=file_out)
^

代碼:

import fnmatch 
import os 

rootPath = '/xxx/xxx//' 
pattern = 'xxx.txt' 

file_in = open(os.path.join(root, filename),"r") 
file_out = open("output.txt", "w") 

for root, dirs, files in os.walk(rootPath): 
for filename in fnmatch.filter(files, pattern): 
    print(os.path.join(root, filename)) 
    for line in file_in: 
      print ("%s"%(line), file=file_out) 
    file_in.close() 
    file_out.close() 

回答

0

你可能運行的Python 2,凡沒有被引入了file關鍵字。

print ("%s"%(line), file=file_out)行更改爲file_out.write(line+"\n"),這相當於,更簡單,並且可以在所有Python版本中使用。

但因爲與最終的行在內,你不想要的文件迭代器的問題線2個換行符所以只寫file_out.write(line)

+0

不要忘記將自己加入新行,如果你要使用'file.write'方法。 – user2357112

+1

你是對的,但我認爲OP不想要2個換行符('line'已經有一個換行符,因爲文件迭代器發佈了它) –

相關問題