저는 포럼 규칙을 위반할 경우이 포럼을 처음 접하고 프로그래밍하고 사과 할 것입니다. 이 광범위하게 연구했지만 내 문제에 대한 해결책을 찾을 수 없습니다. 그래서Python에서 regex를 사용하여 행을 찾아서 복사하십시오.
나는이 일반적인 구조가 매우 긴 파일이 : 나는 모든 행을 찾기 위해 정규 표현식을 사용하려고 지금
with open("C:\blablabla\text.txt", 'r+') as infile:
data = infile.read()
사용하여 파일을 가져
data="""
20.020001 563410 9
20.520001 577410 20
21.022001 591466 9
21.522001 605466 120
23.196001 652338 2
25.278001 710634 7
25.780001 724690 144
26.280001 738690 9
26.782001 752746 40
27.282001 766746 9
27.784001 780802 140
29.372001 825266 2
31.458001 883674 7
31.958002 897674 8
32.458002 911674 9
32.958002 925674 10
"""
그 (146)를 통해 140로 끝나는, 그래서 이런 짓을 :
items=re.findall('.......................14[0-6]\n',data,re.MULTILINE)
for x in items:
print x
이, 작동하지만 지금은 t을하려고 할 때
if items in data:
TypeError: 'in <string>' requires string as left operand, not list
나는 문제가 무엇인지 이해하지만, 나는 그것을 해결하는 방법을 몰라 : o 정규 표현식을 포함하는 라인,
for x in items:
if items in data:
data.write(items)
나는 다음과 같은 오류가 복사합니다. 정규 표현식의 결과가리스트 일 때 왼쪽 피연산자에 문자열을 어떻게 공급할 수 있습니까?
은 어떤 도움이 많이 감사합니다!
고정 포맷의 경우're'보다'split'을 선택하는 것이 좋은 해결책입니다 - 예. 'line.split()'는 라인을 분리 된 숫자로 나눕니다. 마지막 항목'line.split() [- 1]'이 예상 범위 내에 있는지 간단히 확인할 수 있습니다. – l4mpi
'데이터 항목이 있다면 :'을 왜 확인하고 있습니까? 데이터에서'items'를 추출하지 않았습니까? –
또한'csv' 모듈을 확인하십시오. 구문 분석을 좀 더 쉽게 할 수 있습니다. –