2015-07-02 78 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