Pythonで頻発するこのエラー…。
Unicodeとか、バイト文字列とかいいから、さっさと直したい!!(´ω`)
…。はい、その声にお答えします。
.encode(‘utf-8’)をつけてしまいましょう。(´ω`)
下記はサンプルです。
print('日本語やでー'.encode('utf-8'))
Pythonで頻発するこのエラー…。
Unicodeとか、バイト文字列とかいいから、さっさと直したい!!(´ω`)
…。はい、その声にお答えします。
.encode(‘utf-8’)をつけてしまいましょう。(´ω`)
下記はサンプルです。
print('日本語やでー'.encode('utf-8'))
またまた、Pythonのコピペ用コードです。
日付の名前のファイルを作りたいとき、ありますよね?ログ取ったりとか。
そういう時にちゃちゃっとファイルを作るやつです。
import os import datetime def saveTrainExamples(str): folder = "C:\\hogehoge\\test_dir" if not os.path.exists(folder): os.makedirs(folder) filename = os.path.join(folder, datetime.datetime.today().strftime('%Y-%m-%d') + ".txt") with open(filename, "a") as f: str = "\n" + str f.write(str) saveTrainExamples("What a little monkey!")
ちなみに、私は開発はWindowsでやってますが、年月日の形式を
filename = os.path.join(folder, datetime.datetime.today().strftime('%Y/%m/%d') + ".txt")
でやっていたら、下記のようなエラーが出ました。
FileNotFoundError: [Errno 2] No such file or directory: ‘C:\\hogehoge\\test_dir\\2018/07/19.txt’
なんでなんで??と思っていたら、そっか、Windowsでは/の入ったファイル作れないんですね…。
Let’s Encryptがワイルドカード証明書に対応したので発行してみました。
下記コマンドでワイルドカード証明書を発行できます。
# certbot-auto certonly --manual \ -d *.example.com -d example.com \ --preferred-challenges dns-01 \ --server https://acme-v02.api.letsencrypt.org/directory
すると、下記のように認証用にDNSのTXTレコードの追加を要求されます。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please deploy a DNS TXT record under the name _acme-challenge.example.com with the following value: vduUg7XfNjwQ8hCEHZD0owLHo6Z-sf9Wmm8w5345maY Before continuing, verify the record is deployed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Press Enter to Continue
要求されたとおりにTXTレコードを追加します。
_acme-challenge.example.com. 300 IN TXT "vduUg7XfNjwQ8hCEHZD0owLHo6Z-sf9Wmm8w5345maY"
TXTレコードの追加がDNSサーバーに反映された後に、Enterを押します。
TXTレコードの確認するには下記コマンドを実行します。
# dig _acme-challenge.example.com TXT
TXTレコードの検証が成功すれば、ワイルドカード証明書が発行されます。
参考URL: https://community.letsencrypt.org/t/getting-wildcard-certificates-with-certbot/56285
コピペ用のサンプルコードです。
ミリ秒を時:分:秒のフォーマットにして返します。
def millSecToStr(millSeconds): m, s = divmod(millSeconds / 1000, 60) h, m = divmod(m, 60) str_duration = "%d:%02d:%02d" % (h, m, s) return str_duration
#例 str_time = millSecToStr(10000000) print(str_time) #2:46:40 が出力されます。
リストを文字列として表示させたい場合が往々にしてあると思います。
format 関数を使うと簡単にできます!ヾ(´ω`○).
win_list = ["blue","eyes","white","dragon"] print("順番リスト{}".format(win_list)) #次が出力されます。 #順番リスト['blue', 'eyes', 'white', 'dragon']
文字列を混ぜたい場合は、下記のようにもできます。
player = "kaiba" win_list = ["blue","eyes","white","dragon"] print("勝利 %s 順番リスト{}".format(win_list) % player) #次が出力されます。 #勝利 kaiba 順番リスト['blue', 'eyes', 'white', 'dragon']