2015-07-02 75 views
0
infile1 = open("D:/p/non_rte_header_path.txt","r") 
infile2 = open("D:/p/fnsinrte.txt","r") 
for line in infile1: 
    for item in infile2: 
     eachfile = open(line,"r") 

對於上述代碼我得到下面的錯誤。 infile1包含5文件,如d路徑:/folder/Src/em.h但在這裏\ n自動處於path.I結束我不知道爲什麼會發生。請幫忙。IO錯誤22蟒

IOError: [Errno 22] invalid mode ('r') or filename: 'D:/folder/Src/em.h\n' 
+3

'\ N'應該給你一些提示,你忘了去掉尾隨換行符。 – dhke

+1

嘗試在嘗試打開它之前修剪「行」。 – Maroun

+2

您需要剝離換行符所以'line.rstip( '\ n')'將工作 – EdChum

回答

2

大家提供意見,告訴你問題是什麼,但如果你是一個初學者,你可能不明白爲什麼它的發生,所以我會解釋。

基本上,與Python打開文件時,每個新行(當你按下回車鍵)是由「\ n」表示。

當你閱讀文件,它讀取一行行,但除非你刪除了「\ n」,它的行變量將讀取

thethingsonthatline \ n

這可能是用於查看文件是否包含多行,但您希望擺脫它。 Edchum和alvits已經給出了一個很好的做法!

你糾正代碼將是:

infile1 = open("D:/p/non_rte_header_path.txt","r") 
infile2 = open("D:/p/fnsinrte.txt","r") 

for line in infile1: 
    for item in infile2: 
     eachfile = open(line.rstrip('\n'), "r") 
+0

謝謝大家。但是如果我使用rstrip選項,程序會拋出錯誤,指出str沒有觸發rstrip。請幫忙。 –

+0

嘿!你使用的是什麼版本的Python? 我剛剛在我的電腦上測試過它,它工作 – jmaris