원자 위치를 설명하는 두 세트의 데이터가 있습니다. 그것들은 내가 비교하기를 원하는 별도의 파일에 있습니다. 일치하는 원자를 좌표로 식별하는 것을 목표로합니다. 두 가지 경우 모두 데이터는 다음과 같으며 1000 개 정도의 항목이있을 것입니다.파이썬을 사용하여 두 파일의 좌표 일치 확인
1 , 0.000000000000E+00 0.000000000000E+00
2 , 0.000000000000E+00 2.468958660000E+00
3 , 0.000000000000E+00 -2.468958660000E+00
4 , 2.138180920454E+00 -1.234479330000E+00
5 , 2.138180920454E+00 1.234479330000E+00
첫번째 열은 항목 ID이다 번째 X 좌표, Y의 집합이다 : 서로 다른 크기의 시스템을 설명하고, 다음과 같은 형식을 갖기 때문에 파일은 상이한 길이이다.
내가하고 싶은 것은 두 데이터 세트의 좌표를 비교하고 일치 항목과 해당 ID를 식별하는 것입니다. 예를 들어 "파일 1의 항목 3은 파일 2의 항목 6에 해당합니다." 이 정보를 사용하여 파일 2 내의 좌표 값을 변경합니다.
파일을 한 줄씩 읽고 명령을 사용하여 한 줄에 두 개의 항목으로 나눈 다음이를 목록에 넣었지만 첫 번째 엔트리를 호출 할 수있는 반면, 비교 비트를 지정하는 방법에 관해서는 다소 혼란 스럽습니다. 특히 두 번째 엔트리 만 비교하는 것이 좋습니다. 루핑이 필요할 것 같아요?
코드는 지금까지 다음과 같습니다
open1 = open('./3x3supercell_coord_clean','r')
openA = open('./6x6supercell_coord_clean','r')
small_list=[]
for line in open1:
stripped_small_line = line.strip()
column_small = stripped_small_line.split(",")
small_list.append(column_small)
big_list=[]
for line in openA:
stripped_big_line = line.strip()
column_big = stripped_big_line.split(",")
big_list.append(column_big)
print small_list[2][1] #prints out coords only
각 개별 파일에서 좌표가 고유하거나 중복 될 수 있습니까? – hexparrot
모든 좌표는 겹치지 않는 개별 원자를 설명하기 때문에 구별되어야합니다. – user2405718
numpy.loadtxt를 사용하고 배열로 모든 것을 처리하십시오 ... –