たまに調べるpythonコマンド 〜ファイル操作〜
たまに使い方を調べるpythonのファイル操作についていっそまとまておこうと思い載せておく
カレントディレクトリのパスを取得
import os
path = os.getcwd()
ファイルの存在を確認する
import os path = "./your/search/file/path" os.path.exists(path)
ファイルの拡張子判別
import os file = "test.txt" if file.endswith('.txt'): print("text file") else: print("not text file")
拡張子を除いたファイル名を取得
import os filename = "test.txt" name_only = os.path.splitext(os.path.basename(filename))[0] # name_only : test
Mac Book M1 でDocker環境を試してみる
目次
- 目次
- はじめに
- Docker Desktop for M1 のダウンロード
- Docker Desktopのインストール
- Docker versionの確認
- Dockerコンテナを動かしてみる
- VS code環境の設定
はじめに
Docker DesktopのApple silicon M1用のパブリックプレビューが開始されたということで、試してみることにしてみました。
「Docker Desktop」のパブリックプレビューが開始 ~1,000人以上の開発者が参加 - 窓の杜
Docker Desktop for M1 のダウンロード
Docker Desktop for M1 は以下からダウンロードすることができます。
Download and Try the Tech Preview of Docker Desktop for M1 - Docker Blog
Docker Desktopのインストール
上記リンクからダウンロードした.dmg
ファイルをダブルクリックして開きます。
Dockerでpython3+OpenCVの環境を整えてみる
Macbook air を購入したので、お試しがてらDockerでOpenCVの開発環境を整えてみようとしたらハマったので、その対処などをメモしておきます。
目次
- 目次
- やりたいこと
- 環境
- 環境構築開始
- Dockerfileをつくるとこんな感じ
やりたいこと
Dockerコンテナ上で、以下の環境を整える。
- Docker image : Ubuntu18.04:latest
- Python3
- OpenCV
環境
M1のMacbook向けのDocker desktop for M1がインストール済みであることを前提にしています。
$ system_profiler SPHardwareDataType Hardware: Hardware Overview: Model Name: MacBook Air Model Identifier: MacBookAir10,1 Chip: Apple M1 Total Number of Cores: 8 (4 performance and 4 efficiency) Memory: 16 GB System Firmware Version: 6723.50.2 $ docker --version Docker version 20.10.1, build 831ebeae96 $ docker-compose --version docker-compose version 1.27.4, build 40524192続きを読む
ROS2環境のセットアップ (Ubuntu18.04)
Python3でROS2を初める(Ubuntu18.04LTS)
目次
- 目次
- はじめに
- 環境構成
- ROS2パッケージの生成
- package.xmlの記述
- setup.pyの記述
- トピックの実装
- publisher.py
- subscriber.py
- ビルドと実行
- colcon build
- 実行
- 参考
はじめに
ROS2にはPython3用のクライアントライブラリ「rclpy」が提供されています。
そこでこの記事では、rclpyを使った基本的なpublisher/subscriberのROS2パッケージ作成方法について簡単に紹介します。
書き方が正しくない可能性がありますので、ご指摘はコメント欄にお願いします。
環境構成
- OS: Ubuntu18.04 LTS
- ROS2 (dashing)
- ディレクトリ構成
colcon_ws ├── buld ├── install ├── log └── src └── <package1> └── <package2> ...
ROS2パッケージの生成
ros2 pkg createコマンドでROS2パッケージの雛形を生成します。今回はrclpyを利用するので、--build-typeでament_pythonを指定します。 なお、C++のROS2パッケージを生成する場合は、ament_cmakeとします。
$ cd ~/colcon_ws/src $ ros2 pkg create --build-type ament_python py_hello_ros2
ここで、「py_hello_ros2」はパッケージ名であり任意に設定してください。
上記コマンドでパッケージを生成すると、以下のような構成となっているはずです。 ROS2のPython3パッケージではCMakeLists.txtは必要なく、package.xmlとsetup.pyだけでよくなりました。
$ cd py_hello_ros2 $ tree . ├── package.xml ├── py_hello_ros2 │ └── __init__.py ├── resource │ └── py_hello_ros2 ├── setup.cfg ├── setup.py └── test ├── test_copyright.py ├── test_flake8.py └── test_pep257.py続きを読む
Markdownで文書作成するメリットと書き方
目次
- 目次
- Markdownのメリット・デメリット
- メリット
- デメリット
- エクセル、ワードとの比較
- エディタ環境
- Markdownの書き方
- 見出し
- リスト
- 文字装飾
- 改行
- 引用
- コード
- チェックボックス
- 表の作成
- ダイアグラムの記述方法
- その他
- csvファイルから表の作成
- ヘッダー・フッターの記述
- word形式に出力
- 参考
Markdownのメリット・デメリット
ワードやエクセルにもいいところがありますが、複数人で同じファイルを管理したり、仕様書などのようにバージョン管理されている文書に関してはMarkdownを用いることが有効だと思っています。そこで、筆者が自分なりにメリット・デメリットをまとめてみました。この記事も、Markdownによって記述されています。
メリット
- テキストなので軽い
- Git等でバージョン管理が行える
- 変更履歴を差分として残すことができる
- シーケンス図などが簡単にきれいに記述できる
- 見た目がきれい
- html, pdf, docxファイルなど他形式への変換が可能
- 環境に依存しない(Officeが無くても使える)
デメリット
- 表の作成がしにくい → エクセルで作成し読み込める
- 書き方を覚える必要がある → 一度覚えてしまえば効率的。比較的覚えやすい
- 作成結果をいちいち確認する必要がある → VScode,Atomを利用すれば書きながらプレビュー可能
エクセル、ワードとの比較
シーン | エクセル, ワードの仕様書 | マークダウン仕様書 |
---|---|---|
変更管理 | 変更管理ページを設け記載するため、変更記録に抜け漏れが発生する。わざわざ修正箇所を赤字にしている。 | バージョン管理ツールにログとして残るため明確 |
差分 | とれるツールもあるが使い勝手が悪い | Git diffで変更箇所が明確 |
修正点の指摘 | 指摘リストのエクセルなどを作り、担当が修正し、再度確認を行っている。 | GitHubを利用すればプルリクエストで第三者も容易に修正提案ができ、マージを終了した時点で修正が完了し、再度確認をする必要もない。 |
仕様書参照 | 技術的には可能(ハイパーリンク機能)だが運用されていないため、毎回文書を開き直し、該当箇所を探している | 相互にリンクを貼ることが当たり前になっていて、問題の箇所がすぐに見られる |
表作成 | エクセルが使いやすい | エクセルには勝てないが、エクセルの表から変換可能。cvsファイルも読み込み可能。 |
(*コチラのサイトを参考にさせてもらいました)
エディタ環境
筆者はVScodeを利用しています。
Markdownに関するプラグインは以下の6こを入れています。
- Markdown Preview Enhanced (必須)
- Markdown All in One (必須)
- Paste Image
- Markdown TOC
- Markdownlint
- Markdown PDF
詳しくはコチラを参照してください。 oratio.hatenablog.com
続きを読む