https://note.nkmk.me/python-file-io-open-with/
OS: Windows10
バージョン: 3.7.9
想定シナリオ:
エクセルからデータを取得し、すべての列をスペースで連結してテキストファイルに書き込む
前提:
python -m pip install openpyxl
from openpyxl import Workbook
from openpyxl import load_workbook
# テスト用ファイル作成
wb1 = Workbook()
ws1 = wb1.active
ws1.append(['col1','col2','col3'])
for i in range(10):
values = []
values.append('A'+str(i) )
values.append('あ'+str(i) )
values.append(i)
ws1.append(values)
wb1.save('a.xlsx')
# ファイル出力
f1 = open('b.txt', mode='w', encoding='utf-8', newline='\n')
wb2 = load_workbook(filename='a.xlsx', read_only=True)
sheetname = wb2.sheetnames[0]
ws2 = wb2[sheetname]
for row in ws2.iter_rows(min_row=2):
if row[0].value is None:
break
values = []
for col in row:
values.append(str(col.value) )
print(values)
f1.write( ' '.join(values)+'\n' )
f1.close()
# 出力ファイル確認
with open('b.txt', mode='r', encoding='utf-8') as f2:
print(f2.read())
with open('b.txt', mode='r', encoding='utf-8') as f3:
while True:
l = f3.readline()
print(l, end="")
if not l:
break
wb2.close()
wb1.close()