반응형
field output 에서 주응력, 주변형률을 출력했다.
파이썬에서 요소라벨과 각 값들만 가져오고 싶었다. 정규표현식으로 시도해봤는데, 쉽지않았다.
전략을 바꿨다. 각 줄을 문자열로 가져왔다.
>>> raw_Zone_A[30]
' 642168 208.681E-06 152.361E-06 -665.429E-06 -6.03356E-03 -23.3627E-03 -274.990E-03\n'
split 연산자를 이용해서 쪼갰다.
>>> raw_Zone_A[30].split()
['642168', '208.681E-06', '152.361E-06', '-665.429E-06', '-6.03356E-03', '-23.3627E-03', '-274.990E-03']
위 줄은 응력이 포함된 줄인데, 응력이 포함되지 않은 줄도 있다. 데이터의 첫줄 같은 경우다. 이런 줄은 제거해주어야 한다. split 연산자로 쪼갠 상태에서 첫번째 원소에 str.isdigit 함수를 적용했다. '642168'과 같이 정수형태면 True 를 반환한다. 이런 경우만 포함하면 된다. for 문을 짰고 아래와 같다.
data=[]
for i in range(len(data_raw)) :
if len(data_raw[i].split()) != 0 : #빈 줄이 있는 경우 제외
if str.isdigit(data_raw[i].split()[0]) : #첫 원소가 정수인 경우만 포함
myline=list(map(float,data_raw[i].split())) #원소를 실수로 변경
data.append(myline) #리스트에 추가
위 if 문에 포함되어 있는 내용인데 한번 더 설명하겠다. map 함수를 이용하여 실수형태로 바꿔주는 코드는 아래와 같다.
>>> list(map(float,raw_Zone_A[30].split()))
[642168.0, 0.000208681, 0.000152361, -0.000665429, -0.00603356, -0.0233627, -0.27499]
반응형
'ABAQUS > 일반' 카테고리의 다른 글
아바쿠스 컨택 예제 (3D, Rigid) (0) | 2023.10.21 |
---|---|
abaqus cae 엘리먼트 개수 확인방법 (0) | 2022.06.03 |
abaqus 실행동작에 대한 파이썬 코드 얻는 법 (0) | 2022.05.20 |
abaqus 에서 inp 생성 안하고 cae에서 바로 인풋코드 보는 법 (0) | 2022.05.20 |
abaqus 에러 (Check the disk space on your system) 해결방법 (0) | 2022.01.21 |
댓글