Python3 > colorText_180707.py > v0.2 > 実行時引数によるキーワード指定 (sys.argvの使用) || v0.3 > 改行用に<BR>追加 || v0.4 color指定修正

```txt:動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04.4 LTS desktop amd64
TensorFlow v1.7.0
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
ADDA v.1.3b6
gnustep-gui-runtime v0.24.0-3.1
PyMieScatt v1.7.0
GNU grep 2.25
```

### 関連

- [Python3 > colorText_180707.py > v0.1 > optという文字に色付けした結果を出力](https://qiita.com/7of9/items/2cd82f61f9f87988de57)

### 処理概要

- テキストをファイルから読込む
- htmlタグで特定の文字に色付けして標準出力
- (今回) 実行時引数で色付けキーワードの指定
 
Pythonの復習もかねて実装。

### 参考

- [29.1. sys — システムパラメータと関数](https://docs.python.jp/3/library/sys.html)


## v0.2

### code v0.2

```colorText_180707.py
import re
import sys

'''
v0.2 Jul. 08, 2018
  - read command-line arguments
v0.1 Jul. 07, 2018
  - add color html tag for a fixed text ('opt')
'''

# on Python 3.5.2

args = sys.argv
if len(args) < 2:
    print('Error: keyword is not specified')
    print('[cmd] [keyword]')
    sys.exit()

SRC_FILE = 'in_180707.txt'
col_text = args[1]
inRed = '<font color=red>' + col_text + '</font>'

with open(SRC_FILE) as fd:
    lines = fd.readlines()
    for aline in lines:
        wrk = aline.replace(col_text, inRed)
        print(wrk, end='')

```

### 使用例

```shell
$ python3 colorText_180707.py 
Error: keyword is not specified
[cmd] [keyword]
```

```shell
$ python3 colorText_180707.py used
This opt is <font color=red>used</font> as a option.
opt.list=1
suboption is also specified so that...
```

htmlとして閲覧すると下記となる。

This opt is <font color=red>used</font> as a option.
opt.list=1
suboption is also specified so that...

### Google Chromeでの表示

```shell
$ python3 colorText_180707.py used > tmp.html
$ google-chrome tmp.html 
```

![qiita.png](https://qiita-image-store.s3.amazonaws.com/0/32870/9f1583ea-f8b6-bb6a-69c8-01e34b5378c3.png)

改行がなくなった。
htmlと解釈されるため、`<CR>`と`<LF>`では改行されなくなる。

## v0.3

改行用の`<BR>`を追加。

### code v0.3

```colorText_180707.py
import re
import sys

'''
v0.3 Jul. 08, 2018
  - add <BR> for each new line
v0.2 Jul. 08, 2018
  - read command-line arguments
v0.1 Jul. 07, 2018
  - add color html tag for a fixed text ('opt')
'''

# on Python 3.5.2

args = sys.argv
if len(args) < 2:
    print('Error: keyword is not specified')
    print('[cmd] [keyword]')
    sys.exit()

SRC_FILE = 'in_180707.txt'
col_text = args[1]
inRed = '<font color=red>' + col_text + '</font>'

with open(SRC_FILE) as fd:
    lines = fd.readlines()
    for aline in lines:
        wrk = aline.replace(col_text, inRed)
        print(wrk, end='<BR>')

```

```shell
$ python3 colorText_180707.py opt > tmp.html
$ google-chrome tmp.html 
```

![qiita.png](https://qiita-image-store.s3.amazonaws.com/0/32870/d0e78fea-6605-0d57-3d33-52a7cdd41dae.png)

Chromeで色付きで見ることができるようになった(上記実行結果では`in_180707.txt`にgrep検索した結果を保存)。

## v0.4

@shiracamus さんのコメントに基づき、color指定の部分を訂正しました。
情報感謝です。

```colorText_180707.py
import re
import sys

'''
v0.4 Jul. 08, 2018
  - fix bug > color attribute without double quotation
v0.3 Jul. 08, 2018
  - add <BR> for each new line
v0.2 Jul. 08, 2018
  - read command-line arguments
v0.1 Jul. 07, 2018
  - add color html tag for a fixed text ('opt')
'''

# on Python 3.5.2

args = sys.argv
if len(args) < 2:
    print('Error: keyword is not specified')
    print('[cmd] [keyword]')
    sys.exit()

SRC_FILE = 'in_180707.txt'
col_text = args[1]
inRed = '<font color="red">' + col_text + '</font>'

with open(SRC_FILE) as fd:
    lines = fd.readlines()
    for aline in lines:
        wrk = aline.replace(col_text, inRed)
        print(wrk, end='<BR>')

```