質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

144閲覧

文章が混在したtxtから指定した行範囲だけを抽出したい

starkfish

総合スコア0

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/01/26 08:52

今自分はXRDの逆格子マップというグラフを最終目標としています。その第1段階として11万行あるデータの中に測定条件等の文言が英語で書かれており、データだけを格納することができずにいます。データにしたい行数はわかっているのでその範囲だけを抽出してprintできないかということを試みています。以下がデータです。
例(ファイル名:aaa.txt)
*RAS_DATA_START
*RAS_HEADER_START
5.0000 0.0000 1.0000
5.0100 0.0000 1.0000
5.0200 0.0000 1.0000
5.0300 0.0000 1.0000
5.0400 0.0000 1.0000
5.0500 0.0000 1.0000
5.0600 0.0000 1.0000
5.0700 2.0002 1.0000
5.0800 0.0000 1.0000
5.0900 0.9826 1.0000
5.1000 0.0000 1.0000
*RAS_DATA_START
*RAS_HEADER_START
5.0000 0.9809 1.0000
5.0100 0.0000 1.0000
5.0200 1.0175 1.0000
5.0300 0.9867 1.0000
5.0400 0.0000 1.0000
5.0500 1.0040 1.0000
5.0600 0.0000 1.0000
5.0700 0.0000 1.0000
5.0800 0.0000 1.0000
5.0900 0.0000 1.0000
5.1000 0.9926 1.0000

このように決まった形で永遠に続いています。この中の3行目11行目、1422行目の1列目(グラフのx)、2列目(グラフのy)を抽出してまずは1列目2列目をprintしたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

awkを使うのが手っ取り早いんじゃないですかね。
ちゃんとテストしてませんが、こんな感じで。

awk '/^*/{mode=""} mode=="d"{print $1,$2} /^*RAS_DATA_START/{mode="d"}' aaa.txt

なお、質問文では最初のブロックと次のブロックの処理の仕方が違うように説明されており、なおかつ「永遠に続く」部分はどちらの方針で行くのかが分かりませんが、気にせず書いています。

投稿2021/01/26 09:21

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

とりあえず方式だけ。
以下のような感じで処理すればできるでしょう。

text

1・通常のファイルとして開ける 2・繰り返し処理1 3・1行読み込む 4・「*RAS_HEADER_START」であれば出力処理開始 5 ・繰り返し処理2 6 ・「*RAS_DATA_START」であれば、出力処理終了。繰り返し処理1に戻る 7 ・行をスペースで分割して、1つめと2つめをprint

投稿2021/01/26 09:04

TakaiY

総合スコア12804

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問