파일 이름에 a가 포함된 경우 파일 이름을 인쇄하려고 합니다 **Error***
(여기서 *는 무엇이든 가질 수 있음을 의미합니다. 예를 들어 Rock_Error_addr
, Error_salary
, TinaError_addr
(처음에 공백이 있을 수도 있음)). 정확한 문자열이 포함된 정규식을 사용하면 인쇄할 수 있습니다. 하지만 위의 상황에서 어떻게 사용해야 할지 조금 혼란스럽습니다.
with open ('input.txt', 'r') as i:
for line in i:
a = re.search ('Error_salary', line) #I also tried a=re.search ('\s+Error\w+', line)
print (line)
위 코드에서는 해당 특정 문자열만 인쇄할 수 있습니다. 오류가 포함된 모든 항목을 인쇄하고 싶습니다. 어떤 도움이라도 대단히 감사하겠습니다. 감사해요
답변1
for
이는 문자열에 대해 루프를 수행하면 문자열의 각 문자를 반복하게 되기 때문입니다 .
>>> glob.glob( '*.rpt' )
['test.rpt']
>>> for i in 'test.rpt':
... print i
...
t
e
s
t
.
r
p
t
이것은 작동하는 것 같습니다:
import glob
with open( 'output.txt', 'w' ) as w:
for file in glob.glob( '*.rpt' ):
with open( file, 'r' ) as r:
w.writelines( r.readlines() )
답변2
코드를 약간 수정하고 에서 읽은 줄에서 오류 문자열이 감지되는 즉시 +를 python
생성하세요 .if
break
import re
with open('input.txt', 'r') as i:
for line in i:
if re.search(r'Error', line):
print('input.txt')
break
그러나 리터럴 문자열 오류만 찾으면 되므로 정규식은 필요하지 않습니다.
if 'Error' in line:
잘 작동합니다.