カテゴリー | タイトル | link |
---|---|---|
Python 基本 | Pythonの開発環境を用意しよう!(Windows) | link |
Python 基本 | とほほのPython入門 | link |
Python 基本から応用 | Python の入門から応用までをサポートする学習サイト | link |
Python 3.8.4 ドキュメント | (機械翻訳) | link |
pythonのコードの中から興味のあるものをテストしてみたので実例をメモしておく。
p = ['ピカソの作は殆ど白1色の生地の上に黒い線で輪郭のみを描いた油彩作品で、','彼としては非常に珍しい。','添付1:リール美術館正面','添付2:リール美術館1階内部']
print (*p, sep='\n')
ピカソの作は殆ど白1色の生地の上に黒い線で輪郭のみを描いた油彩作品で、
彼としては非常に珍しい。
添付1:リール美術館正面
添付2:リール美術館1階内部
l = [p for p in p if '添付' in p and ':' in p]
print(l)
['添付1:リール美術館正面', '添付2:リール美術館1階内部']
print (*l, sep='\n')
添付1:リール美術館正面
添付2:リール美術館1階内部
文字の操作には文字列の取り扱いで大変便利な正規表現を使う。import reでモジュールを呼び出す。
正規表現とは仰々しい言葉だが、Regular Expressionの日本語訳からという。他の分野で訳された言葉をそのまま使っているらしい。
参考): 正規表現操作
美術館訪問記 -443 リール美術館という文字列の443を次の訪問記番号444に変えたい。タイトルなので他に数字は使われない。
import re
t = '美術館訪問記 -443 リール美術館'
n = re.sub("\\D", "", t)
print(type(n))
<class 'str'>
print(n)
443
m = int(n) + 1
t = t.replace(n,str(m))
t = t.replace('-','- ') - と番号の間を空ける
print(n)
美術館訪問記 - 444 リール美術館
メールに添付される画像ファイルは 2020 7 3 1.jpg , 2020 7 3 2.jpg , .....のように名前が付けられており、多くても12個程度。メール本文中に 添付1:リール美術館正面 などと説明が書かれている。
一度メールからfolderにダウンロードした画像ファイル名を関数os.listdir()を使って取得すると文字列でソートされるため2020 7 3 1.jpg の次に2020 7 3 10.jpg が来る。
普通にlist要素を並べ替えるsorted()関数を使うと同じく1の次に10が来てその次に2が来る。
桁数を合わせるとか色々考えたが単純に一つずつ突き合わせてlist要素に張り付けた。
# file sort
ms = ['2020 07 03 1.jpg','2020 07 03 10.jpg','2020 07 03 3.jpg','2020 07 03 2.jpg','2020 07 03 4.jpg','2020 07 03 5.jpg','2020 07 03 9.jpg','2020 07 03 7.jpg','2020 07 03 12.jpg','2020 07 03 6.jpg','2020 07 03 8.jpg','2020 07 03 11.jpg']
print(*ms,sep='\n')
2020 07 03 1.jpg
2020 07 03 10.jpg
2020 07 03 3.jpg
2020 07 03 2.jpg
2020 07 03 4.jpg
2020 07 03 5.jpg
2020 07 03 9.jpg
2020 07 03 7.jpg
2020 07 03 12.jpg
2020 07 03 6.jpg
2020 07 03 8.jpg
2020 07 03 11.jpg
print(type(ms))
<class 'list'>
ct = len(ms)
print(ct)
12
mso = []
j = 1
while j <= ct:
cc = str(j) + '.jpg' # cc = 1.jpg
for i in ms: # i = 2020 7 3 1.jpg
if cc in i : # 1.jpg in 2020 7 3 1.jpg
mso.insert(j,i)
break
j += 1
print(*mso,sep='\n')
2020 07 03 1.jpg
2020 07 03 2.jpg
2020 07 03 3.jpg
2020 07 03 4.jpg
2020 07 03 5.jpg
2020 07 03 6.jpg
2020 07 03 7.jpg
2020 07 03 8.jpg
2020 07 03 9.jpg
2020 07 03 10.jpg
2020 07 03 11.jpg
2020 07 03 12.jpg
後でnatsorted()という関数があることを知った。
pip install natsort # install natsort
# file sort natural
from natsort import natsorted
ms = ['2020 07 03 1.jpg','2020 07 03 10.jpg','2020 07 03 3.jpg','2020 07 03 2.jpg','2020 07 03 4.jpg','2020 07 03 5.jpg','2020 07 03 9.jpg','2020 07 03 7.jpg','2020 07 03 8.jpg','2020 07 03 6.jpg','2020 07 03 11.jpg','2020 07 03 12.jpg']
ms = natsorted(ms) #
print(*ms,sep='\n')
2020 07 03 1.jpg
2020 07 03 2.jpg
2020 07 03 3.jpg
2020 07 03 4.jpg
2020 07 03 5.jpg
2020 07 03 6.jpg
2020 07 03 7.jpg
2020 07 03 8.jpg
2020 07 03 9.jpg
2020 07 03 10.jpg
2020 07 03 11.jpg
2020 07 03 12.jpg
Total | Today | Yesterday |