🐍
tsvファイルからmarkdown形式の表を作る
概要
- Exelで作成した表をmarkdown形式にしてBaklogに貼り付けたい
- Excelは複数セルを選択してコピペするとタブで区切られるので、tsvファイルからmarkdown形式にする仕組みがあればいいと思った
- pythonのpandasを使って実現できた
コードと実行結果
実行には pandas
と tabulate
が必要になります。
pip install pandas
pip install tabulate
コード
# tsv_to_markdown_table.py
import pandas as pd
def tsv_to_markdown_table(tsv_file_path):
# Read TSV file into a DataFrame
df = pd.read_csv(tsv_file_path, sep='\t')
# Convert DataFrame to markdown table
markdown_table = df.to_markdown(index=False)
return markdown_table
# Example usage
tsv_file_path = 'example.tsv' # Replace with your TSV file path
markdown_table = tsv_to_markdown_table(tsv_file_path)
print(markdown_table)
example.tsv
Name Age Occupation
Alice 30 Engineer
Bob 25 Designer
Charlie 35 Teacher
$ python3 tsv_to_markdown_table.py
| Name Age Occupation |
|:----------------------------|
| Alice 30 Engineer |
| Bob 25 Designer |
| Charlie 35 Teacher |
zennでの表示はこんな感じ
Name Age Occupation |
---|
Alice 30 Engineer |
Bob 25 Designer |
Charlie 35 Teacher |
ちょっと中身の話
pandas.DataFrame.to_markdown
に tablefmt
パラメータを指定すると、出力形式を選べるっぽい。
# tablefmt="grid"
+-----------------------------+
| Name Age Occupation |
+=============================+
| Alice 30 Engineer |
+-----------------------------+
| Bob 25 Designer |
+-----------------------------+
| Charlie 35 Teacher |
+-----------------------------+
# tablefmt="html"
<table>
<thead>
<tr><th>Name Age Occupation </th></tr>
</thead>
<tbody>
<tr><td>Alice 30 Engineer </td></tr>
<tr><td>Bob 25 Designer </td></tr>
<tr><td>Charlie 35 Teacher </td></tr>
</tbody>
</table>
中身としては、 tabulate
を呼び出しているだけなので、 tablefmt
に指定できる値はtabulateの仕様を確認するのがよい。
Discussion