タグ

ブックマーク / qiita.com/pashango2 (4)

  • PythonでバイナリをあつかうためのTips - Qiita

    Pythonでバイナリを扱う時のTipsです。 Pythonでバイナリを扱う方法は2つあります、structモジュールを使う方法とctypes.Structureクラスを使う方法です。 基的にstructモジュールは数バイトのバイナリを扱いたい時、それ以上のバイト数やC/C++と連携したい時にctypes.Structureクラスを使います。 structモジュール 例としてPNGファイルのバイナリを読んでみます、PNGファイルは頭の8バイトはヘッダで決め打ちです。 9バイト目から18バイトのデータはIHDR領域(正確にはIHDRの一部)でイメージの縦横サイズとビット深度、カラーモードが格納されています。 import struct png_data = open("sample.png", "rb").read() struct.unpack_from(">I4sIIBB", png_

    PythonでバイナリをあつかうためのTips - Qiita
    peketamin
    peketamin 2019/06/11
  • 深入りしないCython入門 - Qiita

    Cythonとは? Pythonは処理速度は決して早くない、むしろ遅い部類である。 そこで、C/C++に変換することにより高速化しようというのがCythonである。 低級言語のC/C++(昔は高級言語だったが、現在は低級言語といって良いだろう)に変換してネイティブコンパイルするのだから、速いに決まっている。 この記事の目的 「Cythonは難しい」、「CythonはC/C++の知識が必要」という印象があるだろう。答えは「Yes」である。 しかし、その答えはCythonをフルに使いこなす事が前提である。 実はCythonは、C/C++をそんなに知らなくても、ちょっとした高速化には充分な恩恵を得られるように設計されているのだ。 しかし、無闇にCythonを使っても「あまり高速化されない」、「移行がすごく大変」と散々な結果になるだろう。そこら辺のポイントを踏まえ、C/C++をあまり知らない初心者

    深入りしないCython入門 - Qiita
    peketamin
    peketamin 2017/01/11
  • 最強のPython開発環境 PyCharmのすゝめ - Qiita

    私はPython歴はかれこれ7年程になり、PyScripterやVimなど色々な開発環境を変遷してきた。 その中でPyCharmが最強のPython開発環境であると断言する。 PyCharm Home Page 開発はIntelliJ IDEAのJetBrainsで、最近はGo言語用IDEのGoglandを発表している。 動作環境はWindows/OS X/Linuxのマルチプラットフォームである。 PyCharmは無償版と有償版があるが、普通の開発ならば無償版で充分すぎるほど機能が備わっている。 PyCharmがいかに便利であるか紹介してみよう。 リアルタイムのコードチェックと修正機能 PyCharmはリアルタイムにコードをチェック(PyFlakes使用)してくれるが、Vimでも同様の事ができるので目新しい事ではない。 PyCharmの素晴らしい所は、警告個所を適切に修正してくれる機能が

    最強のPython開発環境 PyCharmのすゝめ - Qiita
    peketamin
    peketamin 2017/01/04
    vimから乗り換えた勢
  • if __name__ == '__main__' の下にコードをダラダラと書く人、挙手しなさい - Qiita

    あけましておめでとうございます。 新年早々ですが、先生、みなさんに言いたいことがあります。 pythonコードで、if __name__ == '__main__'の下にコードをダラダラと書く人、挙手しなさい。 こんな感じに、if __name__ == '__main__'の下にコードを書く人です。 #! usr/bin/python # -*- coding: utf-8 -*- from __future__ import unicode_literals, print_function, absolute_import import sys def say_args(kind, data_list): print("kind:", kind, " data:", data_list) if __name__ == '__main__': args = sys.argv[1:] as

    if __name__ == '__main__' の下にコードをダラダラと書く人、挙手しなさい - Qiita
  • 1