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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

985閲覧

pythonでのファイル処理について

12tenten31

総合スコア14

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/06/20 13:15

pythonで性格診断を行うシステムの開発をしようと思っておりまして
まず、20の質問にそれぞれ「はい」「ふつう」「いいえ」の3つの解答が存在します。
また、質問それぞれには解答の選び方によりスコアが定まっており、それらすべてを足し合わせた結果から27の性格に分類しようとしています。

この時、分類される27の性格をすべてテキストファイルに保存しておき。例えば、プログラム上でスコア20なら5番目の「ライン型の性格」と判断し、「ライン型の性格」に関するデータを記述しようとしております。

このテキストファイルから任意の部分だけを引っ張り出してきて表示するという方法でいい方法が思いつかず困っております

ps 当方、勉強を始めて日が浅いため理解がかなり浅いです。できるだけ詳しく解説してくると大変うれしいです

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

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

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

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

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

LouiS0616

2018/06/20 13:24

ダミーデータでも良いので、テキストファイルを追記して下さい。構造によって回答は変わってくると思います。
12tenten31

2018/06/21 02:49

すみません、どの形が最適なのか見当がついておらず皆様がするなら、どのような形式にするのかという意図を含めてファイルを追記しなかったのが裏目に出てしまったようで申し訳ないです
guest

回答2

0

ベストアンサー

こんなcsvにするのが安直ではないでしょうか。

# 番号,性格の名前,説明  ※この行はコメント行で、実際のcsvには入れない 0,優しい性格,優しいでしょう 1,怒りっぽい性格,怒りっぽいでしょう ...

適当に読み込む。

python

1import csv 2 3with open("ファイル名", "r") as f: 4 reader = csv.reader(f) 5 data_dict = {} 6 for row in reader: 7 data_dict[row[0]] = row[1:]

あとはdata_dict["0"]等でアクセスできます。int(row[0])を辞書の要素追加のところのキーにすればdata_dict[0]等でもいけます。

投稿2018/06/20 14:36

hayataka2049

総合スコア30933

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

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

0

考えられる非常に単純な方法を一つ書きます。

テキストファイルに1行ずつ性格情報を記述していくとします。
これをreadlines()で読み込むと、リストが取得できます。

python

1f = open('a.txt', 'r') 2lines = f.readlines() #readlinesでリストとして読み込む

ここでn番目(0始まり)の性格であれば、添え字にnを使って取得します。

result=lines[5]という記述になります。

これでresultとして、性格が取得できます。

もしも性格が複数行にわたって記述されている場合は、適当な区切り記号を挿入しておきます。
そしてread()を使って全体を読み込み、区切り記号でリストにsplitします。
たとえば$で区切るなら以下のようになります。

python

1f = open('a.txt', 'r') 2data = f.read() #全てのテキストデータが取得される 3lines=data.split('$') #$で区切られる。

あとは同じようにresult=lines[5]などで処理します。

投稿2018/06/20 13:33

編集2018/06/20 13:36
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問