2017-10-11 3 views
1

내 목표는 개 파일을 열어 목록으로 변환 한 다음 사용자가 개 유형을 입력하게하고 목록의 개 이름과 일치하는 경우 올바른 것으로 말합니다. data는 단일 문자열 동안텍스트 파일의 데이터를 목록으로 변환하는 방법은 무엇입니까?

dog_file = open("Dogs.txt", "r") 
dogs = dog_file.readlines() 
print(dogs) 
data = input("Enter a name: ") 
if data == dogs: 
    print("Success") 
else: 
    print("Sorry that didn't work") 
+0

'당신이 목록에 대해 동일한 지 어떤지를 판정하고 있기 때문에 데이터 == dogs'이 작동하지 않을 경우. 어쩌면'개 안에있는 데이터 ' – roganjosh

+0

거의 다 왔을 것입니다. 'if' 체크 만 변경하십시오. 개 안에 'data +'\ n '인 경우 : – balki

답변

3

dogs 문자열의 목록입니다. 당신은 data 포함되어있는 경우 in 연산자를 사용하여 dogs에서 확인 할 :

if data in dogs: 
    # do sth 
+0

것은 답을 입력 할 때 else 문의 결과를 얻습니다. –

+1

어쩌면 거기에 \ n 또는 \ r과 같은 공백 문자가 각 행 끝에있을 수 있습니다. dog_file.readlines()의 개가 dogs = [dog.strip()]' – Leistungsabfall

+0

그랬습니다. 고마워요. . –

0

이 시도 :

dog_list = [] 
for dog in dogs: 
    dog_list.append(dog) 

이 목록에 파일의 모든 라인을 추가합니다. 목록 시도에서 개있을 경우 지금 확인 : 당신이 배열로가 .txt를 작성하려는 경우

dog_type = input("Enter a dog: ") 
if dog_type in dog_list": 
    print("Success") 
1

하는 (목록으로 변환이)이 시도 :

with open("Dogs.txt", "r") as ins: 
    dogarray = [] 
    for line in ins: 
     line = line.strip() 
     dogarray.append(line) 
    print (dogarray) 

이 그것을 기록 배열에 넣고 .strip 함수를 사용하여 모든 줄 바꿈 후에 원하지 않는 \n을 제거합니다. 지금해야 할 일은 배열에서 읽습니다.

1

이 시도 :

dog_file = open("Dogs.txt", "r") 
dogs = dog_file.readlines() 
# you want to strip away the spaces and new line characters 
content = [x.strip() for x in dogs] 
data = input("Enter a name: ") 
# since dogs here is a list 
if data in dogs: 
    print("Success") 
else: 
    print("Sorry that didn't work") 
관련 문제