Création automatique du calendrier mensuel 2021 (recharge pour notebook système) par Python

Objectif:

Création d'un calendrier mensuel.

Contexte:

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.

impression:

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. calrendar_template.png

Les données:

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. calrendar_db.png

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

Création automatique du calendrier mensuel 2021 (recharge pour notebook système) par Python
Pandas du débutant, par le débutant, pour le débutant [Python]
■ Kaggle Practice pour les débutants - Introduction de Python - par Google Colaboratory
[Pour les débutants] Les bases de Python expliquées par Java Gold Part 1
Mise à jour automatique du module Python
Acquisition automatique des données de niveau d'expression génique par python et R
[Jouons avec Python] Viser la génération automatique de phrases ~ Achèvement de la génération automatique de phrases ~
Extension du dictionnaire python par argument
Notes personnelles pour le traitement d'images python
Script de création de couche AWS pour python
Comportement de python3 par le serveur de Sakura
Premiers pas avec python3
Enregistrement de l'introduction de Python pour les nouveaux arrivants
Histoire d'approximation de puissance par Python
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (2) [Création de projet]
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer jusqu'à la fin du chapitre 2