Pythonでファイルを整理する

Python3を使って溜まったファイルをサブディレクトリを作って整理しました。

ホームディレクトリのDownloadsにあるファイルを、拡張子毎にディレクトリを作成しファイルを移動するようにしています。

from pathlib import Path


def main():
    path = Path.home()/'Downloads'
    file_type = ('pdf', 'jpg', 'mp3', 'dmg', 'txt', 'zip', 'xls', )
    for type in file_type:
        # 拡張子をファイル名としたディレクトリを作成。既に存在してもエラーにしない。
        (Path(path)/type).mkdir(exist_ok=True)
        p = Path(path).glob('*.' + type)
        for f in p:
            f.rename(Path(path)/type/f.name)

if __name__ == '__main__':
    main()
  • ファイルの移動はshutilを使おうとも思ったのですが、renameして対応することにしました。
  • mkdirは引数にexist_ok=Trueをつけるとディレクトリが既に存在してもエラーにならないので便利です。Scriptを作成している途中で何回か実行してディレクトリができてしまっていることが多かったので。
  • / でパスが連結できるのが違和感があったのですが、使っていくうちに慣れました。

Pythonのバージョン

$ python3 -V
Python 3.6.1

参考

11.1. pathlib — オブジェクト指向のファイルシステムパス — Python 3.6.3 ドキュメント

Python3.4以降ならos.pathはさっさと捨ててpathlibを使うべき - Qiita

Atom IDEを使ってみる

Atom IDEを試したときのメモ。

ATOMをインストール

Atomのサイトからダウンロードして、インストールします。 Atom

ATOM IDEをインストール

Atomを立ち上げて、Preferences > install を選びます。

Search packagesと書かれているテキストボックスに「atom-ide-ui」を入力してPackagesボタンをクリックします。

f:id:struts:20171015180206p:plain

atom-ide-ui」のInstallボタンをクリックします。

使いたい言語パッケージをインストールします。例えば、Javascriptであれば「ide-typescript」を選択。 f:id:struts:20171015180600p:plain

他にはこんな言語のパッケージが用意されているようです。

試す

入力補完がされたり、こんな感じで定義が表示されます。

f:id:struts:20171015181118p:plain

またcmdクリックした状態で、マウスをクリックすると定義にジャンプします。(Windowsだとctrlキー)

はじめてのAngular4

nvmをインストール

Homebrewでnvmをインストールをします。

brew install nvm

nvmのディレクトリを作成します。

mkdir ~/.nvm

.bash_profileで上記ディレクトリの変数を設定します。

export NVM_DIR="$HOME/.nvm"
. "/usr/local/opt/nvm/nvm.sh"

nvmを使って、nodeの6.11.2をインストールします。

nvm install 6.11.2
nvm alias default 6.11.2

Angular CLIをインストール

npmを使って、Angular CLIをインストールします。

npm install -g @angular/cli

インストールの確認をする為に、Angular CLIのバージョンを確認します。

ng -v

以下のように出力がされました。

    _                      _                 ____ _     ___
   / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
  / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
 / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
/_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
               |___/
@angular/cli: 1.3.2
node: 6.11.2
os: darwin x64

Angularプロジェクトの作成

Angular CLIを使って、プロジェクトを作成します。

ng new first-app

上記コマンドを作成すると以下のような出力がされ、雛形ディレクトリ、ファイルが作成されます。

installing ng
  create .editorconfig
  create README.md
  create src/app/app.component.css
  create src/app/app.component.html
  create src/app/app.component.spec.ts
  create src/app/app.component.ts
  create src/app/app.module.ts
  create src/assets/.gitkeep
  create src/environments/environment.prod.ts
  create src/environments/environment.ts
  create src/favicon.ico
  create src/index.html
  create src/main.ts
  create src/polyfills.ts
  create src/styles.css
  create src/test.ts
  create src/tsconfig.app.json
  create src/tsconfig.spec.json
  create src/typings.d.ts
  create .angular-cli.json
  create e2e/app.e2e-spec.ts
  create e2e/app.po.ts
  create e2e/tsconfig.e2e.json
  create .gitignore
  create karma.conf.js
  create package.json
  create protractor.conf.js
  create tsconfig.json
  create tslint.json
Installing packages for tooling via npm.
Installed packages for tooling via npm.
Successfully initialized git.
Project 'first-app' successfully created.

雛形のプロジェクトを試してみます。 作られたfirst-appディレクトリに移動して、「npm start」コマンドを実行し、バンドルされたサーバーで動かしてみます。

cd first-app/
npm start

ブラウザで、http://localhost:4020にアクセスすると、以下のような表示がされます。

f:id:struts:20170827173638p:plain

Python3のvenvを使ったDjango環境構築

環境構築

Python3では標準でvenvが入っているので、それを使えばいいですね。

まずは、Homebrewをインストールしておきます。 Homebrew — macOS 用パッケージマネージャー

続いて、Homebrewを使ってPython3をインストールします。

brew install python3

Python3のインストールを確認します。

python3 -V
# Python 3.6.1

venvを使って、Django用の環境を作成します。

python3 -m venv django-dev

django-devというディレクトリが作られます。 作られたディレクトリ、ファイルを確認してみます。

ls django-dev
# bin       include     lib     pyvenv.cfg

この環境をActivateします。

source ./bin/activate

pipを使って、djangoをインストールします。

pip install django

念の為、インストールを確認。

python -m django --version
# 1.11.4

これでインストール完了。

試用

Djanogのチュートリアルにあるように、mysiteというプロジェクトを作成してみます。

はじめての Django アプリ作成、その 1 | Django documentation | Django

django-admin startproject mysite
cd mysite
python manage.py runserver
# 1.11.4

http://127.0.0.1:8000/ にアクセスすると、以下のようなページが表示されます。

f:id:struts:20170820222915p:plain

venvで作った環境を削除したいとき

該当のフォルダを削除すれば良いです。

rm -R  django-dev

Java | 変数

変数を使うJavaのプログラムです。

public class HelloHensu {
    public static void main(String[] args) {
        String aisatsu = "Hello World";
        System.out.println(aisatsu);
    }
}

基本の形は、 変数の型 変数名; の構成です。 =から右の部分は、変数へ値を代入しています。

変数名は任意の名前を設定できます。使用できる文字は、英字と数字と記号(_と$)です。

変数に代入された値は、処理の中で変えることができます。

public class HelloHensu {
    public static void main(String[] args) {
            String aisatsu = "Hello World";
            System.out.println(aisatsu);

            aisatsu = "Good bye";
            System.out.println(aisatsu);

    }
}

ここでは、変数aisatsuの値を「Hello World」から「Good bye」に変えています。

続いて、文字列ではなく、数値を扱います。

public class HelloHensu2 {
    public static void main(String[] args) {
            int number = 1;
            System.out.println(number);

            number = 2;
            System.out.println(number);

            System.out.println(10);
    }
}

基本の形は、やはり 変数の型 変数名; の構成です。 数値を扱う場合、変数の型にはサンプルのように「int」を使用します。 intは、整数を表す英語の「integer」の略です。

前回のサンプルと同じように、変数には処理の途中で値を変えることができます。

勿論、以下の部分のように変数を使わずに直接「System.out.println」に数値を渡して、出力することもできます。

            System.out.println(10);

Djangoの開発環境を作ったときのメモ

MacPortsとpipを使って、Djangoの開発環境を作ったときのメモ。

事前にMacPortsをインストールしておきます。 http://www.macports.org/

MacPortsを使って、Pythonをインストールします。

#Mac portsでPythonをインストール
sudo port install python33

pipもMacPortsを使って、インストールします。

#Mac portsでpipをインストール
sudo port install py27-pip

次に、Virtual envをインストール。これはpipから。

#virtual envをインストール
sudo pip-2.7 install virtualenv

インストールしたVirtual envを使い、Django用の環境を作成します。 作成の前に、Virtual env用のフォルダを作ります。

#仮想環境を構築する
#適当な場所に環境をまとめておく為のフォルダを作成する
mkdir env
cd env

Django用の環境をつくります。

#仮想環境を作る。33のところは分かりやすい名前で良い。
virtualenv -p /opt/local/bin/python3.3 33

作った環境の、activateファイルをsourceします。

#sourceする。対象は、バージョン33を
source ./33/bin/activate

ソースコマンドについては、以下に説明がある。

sourceコマンド|Linuxコマンド http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1428166659

仮想環境は作成できたので、pipを使ってDjangoをインストール。

#ようやくDjangoをインストール
pip install django

これでインストール完了しました!

Javaで「Hello World!」

Javaで作る最初のプログラム

画面に「Hello world」という文字列を表示するだけのプログラムです。

Hello world - Wikipedia

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

1行目の「public class Hello」の部分は、クラス名の宣言をするところです。 今回では、「Hello」という名前にしました。

2行目の「public static void main(String[] args) {」の部分は、メインメソッドの宣言です。Javaではクラスを実行すると、メインメソッドが呼ばれます。mainという名前や、それ以外の部分もこの形で決まっているので、暫くはこの形が固定です。

3行目の「System.out.println(“Hello World!”);」の部分は、Hello Worldと出力するという処理の記述です。勿論、Hello Worldの部分は、他の文字列に変更することもできます。

public class Hello {
    public static void main(String[] args) {
        System.out.println("Good bye World!");//Good byeに変更
    }
}

エラーの例

mainメソッドがpublicになっていない

mainメソッドにpublicを付け忘れると以下のように、エラーになってしまいます。

Error: Main method not found in class Hello, please define the main method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

こういうプログラムだと、上記エラーが発生します。

public class Hello {
    static void main(String[] args) {
        System.out.println("Hello World!");
    }
}