ファイルの内容(要素 × 個数)を基にリストを作りたかったのでpythonを使って書いたメモ。
確認環境
[hoge@localhost misc]$ cat /etc/centos-release CentOS Linux release 7.6.1810 (Core)
入力ファイルの内容
<要素> <要素の個数>を1行に記載する。
10 3
20 2
30 1↑を↓のようなリストにしたい
10,10,10,20,20,30
...
コード
#!/usr/bin/python # -*- coding:utf-8 -*- import sys def file_to_list(path): all_list = [] with open(path) as f: lines = f.readlines() for line in lines: # 各行の<要素> <個数>をリストに分割 splited_line = line.split() # <要素>を<個数>だけ繰り返したリストを作成し、結合する tmp_list = [splited_line[0] for i in range(int(splited_line[1]))] all_list.extend(tmp_list) return all_list if __name__ == '__main__': args = sys.argv print file_to_list(args[1])
実行例
[hoge@localhost misc]$ python file_to_list.py lines.dat ['10', '10', '10', '20', '20', '30']
参考にしました