텍스트 파일의 데이터를 한 줄씩 읽고 2D 배열에 저장하여 나중에 더 처리 할 수 있도록하려고합니다.
문자열 'EOE'가 발견 될 때마다 새 행으로 이동하고 텍스트 파일에서 한 줄씩 항목을 계속 읽고 싶습니다.
2D 문자열 배열을 선언하거나 값을 성공적으로 읽을 수없는 것 같습니다. 저는 C에서 온 파이썬을 처음 사용하므로 구문과 일반적인 파이썬 이해가 좋지 않습니다.
rf = open('data_small.txt', 'r')
lines = rf.readlines()
rf.close()
i = 0
j = 0
line_array = np.array((200, 200))
for line in lines:
line=line.strip()
print(line)
line_array[i][j] = line
if line == 'EOE':
i+=1
j+=1
rf.close()
line_array
텍스트 파일은 다음과 같습니다.
-----
Entry1=50
Entry2=SomeText
Entry3=Instance.Test.ID=67
EOE
-----
Entry1=Processing
Entry2=50.87.78
Entry3=Instance.Test.ID=91
EOE
-----
Entry1=50
Entry2=SomeText
Entry3=Instance.Test.ID=67
EOE
-----
배열 문자열 배열이 다음과 같이 보이기를 원합니다. 행과 열을 바꿀 수 있지만 전체적인 아이디어는 하나의 행 또는 하나의 열이 EOE 항목을 나타내는 것입니다.
array = [
['-----', 'Entry1=50', 'Entry2=SomeText', 'Entry3=Instance.Test.ID=67', 'EOE'],
['-----', 'Entry1=Processing', 'Entry2=50.87.78', 'Entry3=Instance.Test.ID=91', 'EOE'],
['-----', 'Entry1=50', 'Entry2=SomeText', 'Entry3=Instance.Test.ID=67', 'EOE']
]
이것은 하나의 접근 방식입니다.
전의:
res = [[]]
with open(filename) as infile:
for line in infile: #Iterate each line
line = line.strip() #strip new line
if line == 'EOE': #check for `EOE`
res.append([]) #Add new sub-list
else:
res[-1].append(line) #Append content to previous sub-list
print(res)
산출:
[['-----', 'Entry1=50', 'Entry2=SomeText', 'Entry3=Instance.Test.ID=67'],
['-----',
'Entry1=Processing',
'Entry2=50.87.78',
'Entry3=Instance.Test.ID=91'],
['-----', 'Entry1=50', 'Entry2=SomeText', 'Entry3=Instance.Test.ID=67'],
['-----']]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다