windowsです

 

F:\動画\MAD\ココロガオドルハーブティーヨォー↑↑ - [sm27743371].mp4

みたいなファイルパスがあったとき、それを変数fに代入して、

 

f = f.rsplit("\\",1)[1]
f = f.rsplit(".",1)[0]

 

ってやれば、ファイル名(拡張子なし)を取り出せることに気が付きました

やったね!

最初は正規表現を使おうと思ってたんですけど、なんか面倒なんですよね(ハナホジ

正規表現を書くのは慣れたけど、それに関連した命令を書くのがめんどう

 

解説

rsplit : 文字列を指定文字列(\など)で後ろから区切っていく。CSVとかのときにも便利。第二引数に1を指定すると1回だけ区切る。

\\ : \をエスケープするために二度やってる(1回だけだとエラーになるかも)

 

os.path.basename()ってナンデスカ、シリマセンネー

 

 

 

リゼちゃんは可愛いのでこんなのをつくってみました。pythonのコードを晒すのは初めてなので恥ずかしいですね…///
 
これを実行するにはsixohsix氏のライブラリが必要です。pipかなんかであらかじめげっとしておいてください ▷ https://github.com/sixohsix/twitter
 
・苦労した点
search/tweetsで帰ってくるツイートは、statusesという値?がついていて、それをforでまわすことで表示することができるのですが、そこに画像がついている場合は、["entities"]["media"]という値があり(辞書)、さらにそれは複数ある場合もあるのでもういっかいfor~in~をするのですが、もし画像がない場合は["entities"]["media"]という値がそもそもないため、それを呼び出そうとするとエラーになります。これの解決方法としてtry~except~を使う方法と、if~in~で値が存在するか調べて条件分岐させる方法があるようなのですが、今回は前者を使いました。
 
図1:だいたいこんなかんじ
 
 
しかしpythonには他にも、from collections import defaultdict とかいうのがあるらしいんですけど、そっちは今回うまく行かなかったのでやめました。
 
・実行結果
 
 
動画のサムネイルのURLが表示されています
動画を取得する方法に関してはまた機会があったら投稿します。
まあpythonに限った話ではないと思いますけども
 
  • ぱいちょんがうごかない

 
私の使っているVPSで、cronを実行しようとして、どうにもうまくいかない
crontab -eで10 * * * * python home/hoge/hoge.py みたいなことを書いたのにうまくいかない
service crond statusでみてもちゃんとうごいてる
えーどうして・・・どうしてだろう気になって気になって気になって気になって
 
さっきのコマンドの後ろに、 >>/home/hoge/analog.log 2>>/home/hoge/analog-err.log
とか書いてみました。前者は標準出力を、
後者はエラーの場合の標準出力(?)をログに書き出すらしいです。
すると、
「ImportError: No module named request」
とか書いてあるではないか!
確かにスクリプト(hoge.py)の冒頭、「import urllib.request」って書いてあるけど、
普通に実行すればこのエラーは起きない まあurllib使ってないけど
どうしたものかと思いぐぐると、どうもpython2ではurllib.requestと
いうものはないらしく、自分がpython3をインストールしているせいだ
と気がついた。
このVPSには最初からpython2.6かなんかが入ってて、インストールしたあとに
ln -s /usr/local/python/bin/python3 /usr/local/bin/python (だと思う)
とかやって動かしてるんですけど、
これがcronで実行したときうまく読み込んでくれない?らしい(環境変数の問題)
で、cronに「python -V」と書くと、「Python 2.6.6」と出力されるわけで、
ずっとこれと格闘してログに「Python 2.6.6 Python 2.6.6 Python 2.6.6 
Python 2.6.6」ってずらーっとかきだすはめになって・・・


  • 解決

そこで、crontab -eの最初の行に、
PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
とかいうおまじないを書くことで解決しました。やったね。
この赤文字のところが重要で、これを一番最初に持ってくることで
python3のリンクを優先して読み込んでくれるらしいです。
まあまだLinuxはわからないことだらけですね。ちなみにCentOSです。


 
ちなみにその実行したスクリプトがこちらになります
かわいいですね