Création d'un calendrier mensuel.
J'utilise un ordinateur portable système, mais parce que la taille de la recharge (82 mm L x 140 mm L) est spéciale, elle est difficile à obtenir, le prix est raisonnablement élevé, et c'était un temps passé que je pensais le faire à la main, mais à ce moment-là je l'ai rempli J'ai fait un papier sur mesure, et il restait encore du papier vierge, alors j'ai pensé à le faire l'année prochaine après une longue absence. Comme c'est une fois par an, il peut être fait à la main, mais comme il existe un environnement de programmation spécial, créons un mécanisme qui peut automatiquement générer un calendrier chaque année. C'est pourquoi j'ai essayé la programmation.
Utilisez la fonction «publipostage» du logiciel de traitement de texte. Par conséquent, les données de calendrier pour le publipostage peuvent être créées. Le modèle de «publipostage» est un modèle qui s'affiche pendant un mois dans une planche, comme illustré dans la figure ci-dessous.
Puisqu'un mois devient un enregistrement, si une base de données de calendrier comme celle illustrée ci-dessous est créée, elle peut être utilisée pour le publipostage. Cette fois, j'ai essayé de créer cette table avec python.
Le code est comme suit
.ruby:monthly_calendar.py
import pandas as pd
import numpy as np
import calendar as cl
import os
"""
Version terminée pour le moment
"""
file='f.csv'
fout=open(file,'w',encoding="utf_8")
#Année pour créer
YEAR=2021
"""
Créer des données avec une boucle while
m--> month
D--> date
out -->Collectez des données ici
"""
m=1
out=""
while m < 13:
MR=cl.monthrange(YEAR,m)
out=("{0},".format(cl.month_name[m]))
D=0
while D < 37:
while D < MR[0]:
out+=("*,")
D+=1
if D < MR[1]+MR[0]:
out+=("{0},".format(str(D-MR[0]+1)))
D+=1
else:
out+=("*,")
D+=1
out=out[:-1]
out='{0}\n'.format(out)
print(out)
fout.write(out)
m+=1
fout.close()
body_df=pd.read_csv('f.csv',index_col=0,
names=['D0','D1','D2','D3','D4','D5','D6','D7','D8','D9','D10',
'D11','D12','D13','D14','D15','D16','D17','D18','D19','D20',
'D21','D22','D23','D24','D25','D26','D27','D28','D29','D30',
'D31','D32','D33','D34','D35' ,'D36'])
print(body_df)
body_df.to_csv('f_out.csv')
os.remove('f.csv')
Il y a quelques améliorations et ajouts de fonctions comme "Mois" au début de l'index de la base de données et la saisie manuelle des jours fériés. Je commencerai à travailler quand j'en aurai envie.
Recommended Posts