Higu`s diary

大学院生の日記です。主にプログラミングとカメラについて。最近はデータ分析・Kaggleにハマっています

半年ちょい勉強したしPythonの便利なコード紹介します

こんにちは!ひぐです

 

 

最近はQiitaの記事の質が落ちたやらなんやら物騒ですね。

だから自分のブログで垂れ流すZOI

 

とくになんもいうことないな

 

紹介します!!(大声)

 

※自分は研究の解析のためにPythonを使ってるので、

企業とかの大規模なコードでは参考にならないかもしれないです(ごめんなさい)

 

①Printで改行しない方法

参考:python3で改行なしでprintする - Qiita

print('Kaigyo Yurusan',end='')

end引数に何か入れるとそれが改行の代わりに入ります。

 

for文デバッグするときとかに使ってます。

(デバッガー使え)

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

②自作した関数を、別フォルダの他のコードでも使う方法。

参考:Pythonで簡単に自作関数を使いまわす - Qiita

 

やりたいこと:

/src/mymoduleフォルダに入っているmyfunc.pyファイルの中のすべての関数を読み込みたい

import sys; sys.path.append('/src/mymodule')
from myfunc import *

 

myfunc.pyのなかにfunc1

という関数があった場合普通にhoge=func1()...と参照できます。

 

たぶん、大規模のコードを動かすときはこの方法だと、

どのpyファイルから読みだしたかわからなくなったりして大変だと思います。

 

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

③リストを任意の数、同じ要素で埋めたい時
GosenTyoen=['一兆円']*5000

['一兆円','一兆円','一兆円','一兆円'....]

となります。かんたん!

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

④⑤文字列の一部を変更したい&リストの要素ひとつひとつに操作をしたい時
Gosenen=[re.sub('兆','',x) for x in GosenTyoen]

reモジュールは正規表現で文字列を操作するコードです。

re.subメソッドは第1引数を第2引数に変更します。この場合、

['一円','一円','一円','一円'....]となります。

 

この書き方はリスト内包表記といわれて、

可読性を保ちつつ、行数を減らせるのでとっても便利です!

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

⑥文字列の中に変数を代入したい。

参考:Python 3.6の新機能f-strings(フォーマット文字列リテラル)について - Read -> Blog

たとえばスクレイピングするとき、連番のURLを取得したいときなんかに便利です。

url =lxml.html.parse(f'https://www.nhk.or.jp/{year}.html')

文字列の前にfを付け、代入したい部分に{変数名}としてあげればOKです。

 

Python3.6からの新機能です。とっても便利!

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

⑧フォルダ内の全部のファイルを取得したい
path_list = glob.glob('test/*.txt')
結果↓
['test\\file1.txt', 'test\\file2.txt', 'test\\file3.txt']

*の部分は何でもよい、という意味です。

globは正規表現でファイルを指定できます。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

たぶんもっとたくさんあるので、

思いつき次第更新していきたいと思います!

 

では!

 

 

google-site-verification: google1c6f931fc8723fac.html