【Python pip】コピーした文字数をカウントするツール

## はじめに
Wordpressでブログを始めてから、文字数に気を使うことが増えました。記事のタイトルは30文字程度に収めなければ、はみ出してしまうからです。

そこで、「**clipcount**」というPythonパッケージを作成しました。これにより、**文章をコピーするだけで文字数を計測**できます。




## clipcount

clipcountはクリップボードの文字を読み込み、文字数を出力するPythonパッケージです。

https://pypi.org/project/clipcount/

詳しい開発経緯は以下の記事をご参照ください。

https://yusu79.com/dev-clipcount/

### 1．インストール（Setup）
pipでインストールします。
```bash:
pip install clipcount
```
#### Windowsで「警告」が出た時の対処方法
:::note warn
「`"WARNING: The script clipcount.exe is installed in 'ファイルパス' which is not on PATH."`」といった警告が表示され、**コマンドが実行されない**こともあります。この問題の解決につきましては、以下の記事をご参照ください。
:::
https://yusu79.com/python-path-issue/


:::note warn
「`WARNING: Failed to write executable - trying to use .deleteme logic` 」といった警告が出て**インストールそのものが出来ない**こともあります。この問題の解決につきましては、以下の記事をご参照ください。

:::


https://yusu79.com/pip-install-failure-fix/

### 2．使い方（Quick usage）
CUIツールとして使用し、文字数をターミナル上に出力できます。
```bash:
$ clipcount [オプション]
```

また、Pythonファイル上でインポートできます。
```python:
from clipcount import clipcount
x = clipcount({オプション})
```

| オプション          | 説明                                                                     | 
| ------------------- | ------------------------------------------------------------------------ | 
| clipcount -h        | ヘルプ画面を表示します。                                                 | 
| clipcount --help_jp | ヘルプ画面を日本語で表示します。                                         | 
| clipcount -b        | 改行コード（`\n`か`\r\n`）を削除した文字数を出力します。                 | 
| clipcount -s        | 半角空白を削除した文字数を出力します。                                   | 
| clipcount -S        | 全角空白を削除した文字数を出力します。                                   | 
| clipcount -t        | タブコード（`\t`）を削除した文字数を出力します。                                       | 
| clipcount --split   | 空白文字（改行、半角空白、全角空白、タブ）を削除した文字数を出力します。 | 
| clipcount -m        | 半角英数を0.5文字として換算して、文字数を出力します。                    | 






### 3．使用例（Example）
:::note info
以下の例は「Windows」環境で実行しているので、改行コードを「`\r\n`」としてカウントしています。
:::

以下の文章をコピーした上で、clipcountを実行します。
```md:
clipboardの
文字　を読み込みます。
```

#### CUI
- そのまま実行する
```bash:
# 空白文字を含めた全ての文字数を出力
$ clipcount
25
```
- 半角空白を削除して出力
```bash:
# 上記の空白は全角空白なので何も変わらない
$ clipcount -s
25
```
- 全角空白を削除して出力
```bash:
# 全角空白が1文字削除されて出力
$ clipcount -S
24
```
- 改行コードを削除して出力
```bash:
# 改行コードが削除されて出力
$ clipcount -b
21
```
- 空白文字（改行、半角空白、全角空白、タブ）全てを削除して出力
```bash:
# 空白文字（改行、半角空白、全角空白、タブ）全てが削除される
$ clipcount -sSbt
20
```
もしくは`--split`を使っても同じ結果がでる。
```bash:
# 空白文字（改行、半角空白、全角空白、タブ）全てが削除される
$ clipcount --split
20
```

- 半角英数を0.5文字と換算して出力
```bash:
# 半角英数は0.5文字になる
$ clipcount -m
18.5
```

#### インポート
Pythonファイルで「import」も出来ます。
注意点として、オプションに渡すコマンドは「`-`」や「`--`」は除いたものしてください。
```python:
# クリップボードの文字数を変数に格納できる
from clipcount import clipcount
x = clipcount({"split"})
print(x)
```
```bash:
# 「clipcount --split」と同じ結果となる
$ python hoge.py
20
```


### 4．解説（Usage）
clipcountは、「クリップボードを読み込み、文字数を出力する」Pythonパッケージです。
デフォルトでは、「**空白文字（改行、半角空白、全角空白、タブ）を含めた文字数**」を出力します。また、半角文字と全角文字のどちらも「**同じ1文字**」として換算しています。

各種オプションで、それぞれの空白文字を削除した文字数を出力できます。
ターミナル上で使用する場合、オプションは組み合わせる事ができるので、例えば、「全角空白とタブのみ削除した文字数を出力する」には「`clipcount -St`」とすると良いです。

もし、空白文字を一括で削除したい場合は「`--split`」オプションが使えます。これは「`-bsSt`」と同じ意味となります。

半角文字と全角文字を分けて換算したい場合は「`-m`」オプションが使えます。これは半角文字を「0.5文字として換算する」オプションです。**WordPressでは半角英数は0.5文字として扱われる**ため、タイトルやメタキーワードなどの文字数を気にする場面で使用すると、良いと思われます。



### 5．使用しているパッケージ (Dependencies)
- [pyperclip](https://github.com/asweigart/pyperclip)

## GitHub
- [yusu79/clipcount: クリップボードの文字を読み込み、文字数を出力するCUIツール](https://github.com/yusu79/clipcount)