Python テキスト開く with構文

with構文でテキスト開く。

デスクトップ上のテキストを開くためにパスを取得する。

jupyter labならフォルダ構造のなかで右クリック、Copy Pathで取得する。(’Desktop/test.txt’)
デスクトップ上ならshift+右クリックでパスのコピーで取得する。ただし先頭にrをつけること。(r”C:\Users\~Desktop\test.txt”)

with open(‘Desktop/test.txt’,’r’,encoding=”utf-8″) as f:
text = f.read()
print(text)

で読み込めました!

open、closeよりこちらが手間なく簡単かも。

(こちらもencding=がないと’cp932’のエラーが出ます。)

Python テキスト開くopen関数 readメソッド

デスクトップ上のテキストを開くためにパスを取得する。

jupyter labならフォルダ構造のなかで右クリック、Copy Pathで取得する。(’Desktop/test.txt’)


デスクトップ上ならshift+右クリックでパスのコピーで取得する。ただし記述には先頭にrをつけること。(r“C:\Users\~Desktop\test.txt”)

で記述してみる。

file = open(‘Desktop/test.txt’)
text = file.read()
file.close() #openしたら必ずcloseが必要

‘cp932’ codec can’t decode byte 0x86 in position ~とエラー発生。

どうも文字コードが違う模様。

pythonのエンコーディングを確認。

import sys
sys.getdefaultencoding()

回答’utf-8’でした。

そしたらopen関数にencoding=”utf-8″を追加して

file = open(‘Desktop/test.txt’,encoding=”utf-8″)
text = file.read()
file.close()

print(text)

でやっとテキスト内容表示されました!

Python 内包表記

空のリストに100から109までの値を入れる

通常
nums=[]
for i in range(10):
nums.append(i+100)
print(nums)

結果
[100, 101, 102, 103, 104, 105, 106, 107, 108, 109]

内包表記
nums = [i+100 for i in range(10)]

結果
[100, 101, 102, 103, 104, 105, 106, 107, 108, 109]

Python itemメソッド、zip関数、enumerate関数

items()メソッドで辞書のkeyと値を同時に取る

zip関数 複数のリストの要素を同時に取る

enumerate関数 リストの要素とインデックスを同時に取る

items()メソッドで辞書のkeyと値を同時に取る

dictionary = {‘A’:’英語’,’B’:’国語’,’C’:’算数’,’D’:’理科’,’E’:’社会’}

for key,value in dictionary.items():
print(key,value)

結果

A 英語
B 国語
C 算数
D 理科
E 社会

zip関数 複数のリストの要素を同時に取る

a =[‘A’,’B’,’C’]
b =[‘英語’,’国語’,’算数’]
for i,j in zip(a,b):
print(i,j)

結果
A 英語
B 国語
C 算数

enumerate関数 リストの要素とインデックスを同時に取る

a =[‘A’,’B’,’C’]

for i,j in enumerate(a):
print(i,j)

結果
0 A
1 B
2 C