VBA別館・Python別館

64539

Python textファイルから呼び込む - Tak

2018/11/28 (Wed) 09:19:56

① ファイルを読み込む

code上のリストへ数あるデータを書き込むのは、止めて少し効率的な方法にします。

0 百花繚乱
1 疾風迅雷
2 明鏡止水
3 不撓不屈
4 国士無双
5 魑魅魍魎
6 行雲流水
7 花鳥風月
8 天下無双
9 行雲流水

このデータを四文字熟語.txtと言うファイルにして、.pyアプリと同じホルダーに入れます。

まず読込用codeを書きました。

-----------------

import random
file = open("四文字熟語.txt")
lines = file.readlines()
file.close()

#四文字熟語 = [] <---不要だった。

for line in lines:
  line = line.rstrip("\n")

  print(line)

------------------------

・何回かいってますが、インデントは半角4個です、全角2個ではありません(見かけは同じですが、全角2個の場合はerrorとなります)。

・[]は画面上では□に見えますが[ ]です。


ではこれをrunしてみましょう。



おう、出来てる、よかったよかった(当たり前!)

Re: Python textファイルから呼び込む - Tak

2018/11/28 (Wed) 19:50:45

② 乱数による10個の表示

-----------------------

import random

file = open("四文字熟語.txt")
lines = file.readlines()
file.close()

for line in lines:
 line = line.rstrip("\n")

 temp = random.choice(lines)
 print(temp)

-------------------

凄く簡単なcodeですけど、重複があることと一行空くときと空かないときが有ります。

これからその対策をやります。

Re: Python textファイルから呼び込む - Tak

2018/11/29 (Thu) 17:31:23

③ 重複無しの熟語


-------------------

import random

file = open("四文字熟語.txt")
lines = file.readlines()
file.close()

  四文字熟語 = [] #何も入っていないリスト

for line in lines:
四文字熟語.append( line.rstrip("\n"))
  temp = []

for カウンター in range(1):
  temp = random.sample(lines,10)
  print(temp)

これをrunすると、
['3 不撓不屈\n', '4 国士無双\n', '1 疾風迅雷\n', '2 明鏡止水\n', '7 花鳥風月\n', '5 魑魅魍魎\n', '0 百花繚乱\n', '9 行雲流水', '8 天下無双\n', '6 行雲流水\n']
と重複なしの10個の熟語がランダムに並びます。

いや~、ここまで来るのに凄い時間が掛かりました。

この後何かの応用編で、また出てきますので宜しく。

Re: Python textファイルから呼び込む - Tak

2018/12/02 (Sun) 14:22:33

④ ファイルの読出し法あれこれ

沢山あり混乱していますので、纏めました。

方法①のcodeで表示させると、下の表示結果①の様になります。

-------------------

#tak-ファイル呼出し0.py
#ファイルの読み出し、書込みの練習 12/2/2018

# ① ファイルをリスト([ ])一行で表示する
f = open('四文字熟語.txt','r')
line = f.readlines()
f.close() #closeは最後で良い
print(line)

# ② ファイルの最初の一行のみ取得
f = open('四文字熟語.txt','r')
line = f.readline()
f.close() #closeは最後で良い
print(line)
#f.close() #closeは最後で良い

# ③ このやり方は、ファイルを最後まで読み出す。 \nが自動で入るのか一行おきになる。
f = open('四文字熟語.txt')
for line in f:
print(line)
f.close()


# ④ ファイルの中身をそのまま表示する
f=open('四文字熟語.txt')
str=f.read()
print(str) #これもOK
f.close() #closeは最後で良い

"""
== RESTART: J:/MyDocuments/Python/Tak_PythonCode集/Python.py/tak-ファイル呼出し0.py ==

① .readlines()は一行リストで読み込む
>>>['0 百花繚乱\n', '1 疾風迅雷\n', '2 明鏡止水\n', '3 不撓不屈\n', '4 国士無双\n', '5 魑魅魍魎\n', '6 行雲流水\n', '7 花鳥風月\n', '8 天下無双\n', '9 天衣無縫']

② .readline()で最初の一行のみ表示、全体を表示したいならforや.read()を使用する
>>>0 百花繚乱

③ 全部を読み出したいのでforを使う, 一行おきになる
>>>0 百花繚乱

1 疾風迅雷

2 明鏡止水

3 不撓不屈

4 国士無双

5 魑魅魍魎

6 行雲流水

7 花鳥風月

8 天下無双

9 天衣無縫

④ ファイル加工せずreadで全体を読み出す。
>>>0 百花繚乱
1 疾風迅雷
2 明鏡止水
3 不撓不屈
4 国士無双
5 魑魅魍魎
6 行雲流水
7 花鳥風月
8 天下無双
9 天衣無縫

名前
件名
メッセージ
画像
メールアドレス
URL
文字色
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

Copyright © 1999- FC2, inc All Rights Reserved.