VBA別館・Python別館
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 天衣無縫