-2
다음 코드는 다음 작업을 수행 할 때 사용합니다.파이썬 함수 반환 값 1 회 반복 만
- 구문 분석 전체 파일을 검사하고 각 행의 후행을 확인합니다. 패턴이 존재하면, 그 패턴을 주 기능으로 되돌려 값을 출력해야합니다.
문제 :이 기능은 첫 번째 패턴 만 반환하고 동일한 패턴을 여러 줄로 확인하지 않습니다.
코드 : 파일이 ABC를 포함하는 여러 라인이있는 경우
이import re
import sys
import os
def find_pattern(file):
with open(file) as fp:
for line in fp:
if "abc" in line:
return line
else:
continue
def check(file):
return_list = []
data=find_pattern(file)
if data != None:
return_list.append(data)
if not data:
return "working"
else:
return return_list
if __name__== '__main__':
file = sys.argv[1]
print check(file)
, 그것은 단지 1 라인을 인쇄하고 다른 라인을 건너 뜁니다. abc가 포함 된 모든 줄을 인쇄하고 싶습니다.
샘플 파일
sdfdsffdabcafsfse
asasssadfsdadsadsaddsadadabc
asfasfdsafdfabc
위의 코드와 출력 :
sdfdsffdabcafsfse
하지 마십시오 또는
을, 당신은 하나의 간단한 list comprehension이를 관리 할 수 있습니다 'return'이 함수 몸체를 종료시킬 수 있다는 것을 알고 있습니까? –
이것은 비교적 간단 명료 한 문제이지만 샘플 입력 및 출력과 함께 작은 자체 포함 예제를 포함합니다. 이것은 모든 정의에 의해 "좋은 질문"이니, 누군가가 "너무 사소한"것으로 생각하기 때문에 OP를 하찮게 말하는 것은 불공평합니다. –