.csv
파일을 읽고 csvfile
이라는 행렬에 저장하면 매트릭스 내용이 다음과 같이 보입니다 (축약 된 수십 개의 레코드가 있습니다.)파일의 문자열이 문자열 목록에 있는지 확인하십시오. python
[ '411-440854-0', '411-440824-0', '411-441232-0」, 「394-529791」, 「394-529729」, 「394-530626 '], < ...>'[394-1022430-0 ','394-1022432-0 ','394-1022432-0 ','*** 사이에 스위치가있는 다른 CN '], [' 394-833938-0 ','394-833940-0 '], < ...>, ['394-1021830-0 ','394-1021831-0 ','394-833938-0 ','394-833940-0 ' 1021832-0 ','*** 단면 구분자 연결 '], ['394-1022736-0 ','394-1022737-0 ','394-1022738-0 '], < ...>, [ '394-1986420-0', '394-1986419-0', '394-1986416-0', '*** 별난 BN 줄 확인'], [ '394-1986411-0', '394-1986415-0', '394-1986413-0'], <>, [ '394-529865-0', '394-529686-0', '394-530875-0', '*' ** 단면 절단기 연결 '], ['394-830900-0 ','394-830904-0 ','394-830902-0 '], ['394-2350772-0 ','394-2350776-0 ' '394-2350774-0', '*** 현재 섹하지만 최종 휴식', < ...>]
내가 textfile
라는 변수에 텍스트 파일 및 컨텐츠 외모를 읽고있다 좋아요 :
...
object underground_line {
name SPU123-394-1021830-0-sectionalizer;
phases AN;
from SPU123-391-670003;
to SPU123-395-899674_sectionalizernode;
length 26.536;
configuration SPU123-1/0CN15-AN;
}
object underground_line {
name SPU123-394-1021831-0-sectionalizer;
phases BN;
from SPU123-391-670002;
to SPU123-395-899675_sectionalizernode;
length 17.902;
configuration SPU123-1/0CN15-BN;
}
object underground_line {
name SPU123-394-1028883-0-sectionalizer;
phases CN;
from SPU123-391-542651;
to SPU123-395-907325_sectionalizernode;
length 771.777;
configuration SPU123-1CN15-CN;
}
...
name
부분을보고 싶습니다. 행 textfile
(SPU123-
이후이고 -0-sectionalizer
전의 행)은 csvfile
행렬에 있습니다. 그것이 존재하지 않으면, 나는 무언가를하고 싶다. (카운터를 증가시킨다.) 아래를 포함한 몇 가지 방법을 시도했다 :
counter = 0
for noline in textfile:
if 'name SPU123-' in noline:
if '-' in noline[23]:
if ((noline[13:23] not in s[0]) and (noline[13:23] not in s[1]) and (noline[13:23] not in s[2]) for s in csvfile):
counter = counter+1
else:
if ((noline[13:24] not in s[0]) and (noline[13:24] not in s[1]) and (noline[13:-24] not in s[2]) for s in csvfile):
counter = counter+1
print counter
이것은 작동하지 않는다. 또한 위의 코드 예제에서 if any((noline......)
으로 시도했지만 작동하지 않습니다. (noline[13:23]
이가 검색하고자하는 문자열이 있다고 가정하고,이에없는 경우 다음 counter
을 증가 코드에이 구현
>>> l = [['str', 'foo'], ['bar', 'so']]
>>> s = 'foo'
>>> any(s in x for x in l)
True
>>> s = 'nope'
>>> any(s in x for x in l)
False
: l
목록의 목록에서 문자열 s
점검
'''textfile'''에 매트릭스의 항목보다 더 많은 것이 있습니까? 행렬은 목록의 목록 일뿐입니다? – wwii
@wwii 방금'print csvfile' 출력으로 질문을 편집했습니다. 'textfile'은 제가 질문에서 보여준 것보다 훨씬 많은 것을 가지고 있습니다. 이것은 전체 파일의 작은 조각 일뿐입니다. 각'이름'(질문에서 설명한대로 특정 인덱스 사이에 있음)을'csvfile' 행렬 –