2014-03-04 5 views
0
import os 
import fileinput 

filenames1=os.listdir("./chi_square_metal_region_1") 
filenames1.sort() 

for line in fileinput.input("./test_input.dat"): 
    for eachfile in filenames1: 
     if eachfile == line: 
      print yes 

이 코드를 실행할 때 오류가 발생하지 않지만 예상 출력 인 '예'가 인쇄되지 않습니다.python : 입력이 일치하지 않습니다

eachfile과 일치하는 입력에 두 개의 파일이 있으므로 '예'를 두 번 인쇄해야합니다. 예상 출력을 인쇄하지 않는 이유는 무엇입니까?

for line in fileinput.input("./test_input.dat"): 

변수 라인이 마지막에 '\ n을'을 포함합니다 :

+2

'filenames1'의 내용과'test_input.dat'의 내용은 무엇입니까? – MattDMo

+1

이 코드가 마지막 행에 도달하면'NameError'가 발생합니다. –

+0

filenames1에는 2000 개의 파일이 있고 test_input.dat에는 두 개의 행이 있습니다. 파일 이름은 1000.dat, 1250.dat와 같습니다. 두 줄로 된 test_input.dat에 두 개의 파일 이름 4000.dat와 4500.dat를 입력했습니다. 이 두 파일은 파일 이름에 존재합니다 1. – Rafi

답변

1

문제가 있다는 것입니다. 이것을 시도하십시오 :

import os 
import fileinput 

filenames1=os.listdir("./chi_square_metal_region_1") 
filenames1.sort() 

for line in fileinput.input("./test_input.dat"): 
    for eachfile in filenames1: 
     if eachfile == line[:-1]: 
      print yes 
+0

이 작품은 매우 고마워요. – Rafi

+0

@SupermassiveBlackhole : 천만에. –

관련 문제