다음과 같은 문자열이 포함 된 파일이 있습니다.
N1109 X62.729 Y23.764 Z231.442 A59.756 B9.231
그래서이 파일에서 문자와 정수를 나누고 싶습니다. 출력은 다음과 같아야합니다.
N 1109 X 62.729 Y 23.764 Z 231.442 A 59.756 B 9.231
이것은 텍스트 파일에 있습니다. 텍스트 파일에서이 작업을 수행하는 방법을 모르겠습니다.
내가 작성한 코드는 다음과 같습니다.
import re
from sys import argv
script, filename = argv
f = open(filename,"r")
lines = f.readlines()
print lines
r = re.compile("([a-zA-Z]+)([0-9]+)")
a = [r.match(string).group() for string in lines]
print a
사용할 group()
때이 오류가 발생했습니다.
`AttributeError: 'NoneType' object has no attribute 'group'`
group()
출력을 제거 하면 다음 과 같습니다.
[<_sre.SRE_Match object at 0xb72f1b18>, None, None, None, None, None, None, None, None, None, None]
내가 파이썬을 처음 사용하도록 도와주세요 ...
re
이를 위해 모듈을 사용할 수 있습니다 .
이것을 시도하면 도움이 될 수 있습니다.
import re
>>> match = re.match(r"([a-z]+)([0-9]+)", 'N1109', re.I)
>>> if match:
print match.groups()
Output:
('N', '1109')
최신 정보
>>> a=['N1109', 'X62.729', 'Y23.764', 'Z231.442', 'A59.756', 'B9.231']
>>> answer=[]
>>> for i in a:
match = re.match(r"([a-z]+)([0-9]*\.?[0-9]+)", i, re.I)
if match:
answer.append(match.groups())
>>> answer
[('N', '1109'), ('X', '62.729'), ('Y', '23.764'), ('Z', '231.442'), ('A', '59.756'), ('B', '9.231')]
>>>
>>> with open(r'd:\test1.txt') as f:
content = f.readlines()
>>> content=' '.join(content)
>>> content=content.split()
>>> answer=[]
>>> for i in content:
match = re.match(r"([a-z]+)([0-9]*\.?[0-9]+)", i, re.I)
if match:
answer.append(match.groups())
>>> answer
[('N', '1100'), ('X', '63.658'), ('Y', '21.066'), ('Z', '230.989'), ('A', '60.28'), ('B', '9.5'), ('N', '1101'), ('X', '63.424'), ('Y', '21.419'), ('Z', '231.06'), ('A', '60.269'), ('B', '9.459'), ('N', '1102'), ('X', '63.219'), ('Y', '21.805'), ('Z', '231.132'), ('A', '60.231'), ('B', '9.418'), ('N', '1103'), ('X', '63.051'), ('Y', '22.206'), ('Z', '231.202'), ('A', '60.169'), ('B', '9.377'), ('N', '1104'), ('X', '62.915'), ('Y', '22.63'), ('Z', '231.272'), ('A', '60.083'), ('B', '9.335'), ('N', '1105'), ('X', '62.863'), ('Y', '22.851'), ('Z', '231.307'), ('A', '60.027'), ('B', '9.314'), ('N', '1106'), ('X', '62.811'), ('Y', '23.073'), ('Z', '231.341'), ('A', '59.971'), ('B', '9.293'), ('N', '1111'), ('X', '62.702'), ('Y', '24.227'), ('Z', '231.506'), ('A', '59.596'), ('B', '9.191'), ('N', '1112'), ('X', '62.71'), ('Y', '24.462'), ('Z', '231.536'), ('A', '59.503'), ('B', '9.172'), ('N', '1113'), ('X', '62.718'), ('Y', '24.697'), ('Z', '231.567'), ('A', '59.41'), ('B', '9.152'), ('N', '1114'), ('X', '62.727'), ('Y', '24.932'), ('Z', '231.597'), ('A', '59.316'), ('B', '9.133'), ('N', '1115'), ('X', '62.734'), ('Y', '25.167'), ('Z', '231.627'), ('A', '59.222'), ('B', '9.114'), ('N', '1123'), ('X', '62.793'), ('Y', '27.037'), ('Z', '231.864'), ('A', '58.46'), ('B', '8.961')]
>>>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다