LoginSignup
1
1

More than 5 years have passed since last update.

Python > split > 二つのデリミタ(=と空白) > 実装: 'R1=0.5000D+01 R2=0.5000D+01 R12=0.1000D+02 LAM=0.6283D+01'から数値を取り出す

Posted at
動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.2.1
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
ADDA v.1.3b6

処理概要

IN_TXT = 'R1=0.5000D+01  R2=0.5000D+01  R12=0.1000D+02  LAM=0.6283D+01'

上記からそれぞれの値を取り出したい。

code v0.1

split_equal_space_180106.py
'''
v0.1 Jan. 06, 2018
  - add extract_value()
'''


def extract_value(atext, akey):
    # for a single delimiter
    txt = atext.replace('=', ' ')
    #
    found = False
    for elem in txt.split(' '):
        if found:
            return elem
        found = akey in elem
    return None

IN_TXT = 'R1=0.5000D+01  R2=0.5000D+01  R12=0.1000D+02  LAM=0.6283D+01'

val = extract_value(IN_TXT, 'R1')
print(val)
val = extract_value(IN_TXT, 'R2')
print(val)
val = extract_value(IN_TXT, 'R12')
print(val)
val = extract_value(IN_TXT, 'LAM')
print(val)
val = extract_value(IN_TXT, 'DELTAFLYER')
print(val)

run
$ python3 split_equal_space_180106.py 
0.5000D+01
0.5000D+01
0.1000D+02
0.6283D+01
None
1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1