Automatische Erstellung des Monatskalenders 2021 (Nachfüllung für Systemnotizbuch) durch Python

Zweck:

Erstellen eines Monatskalenders.

Hintergrund:

Ich verwende ein Systemnotizbuch, aber da die Größe der Nachfüllung (82 mmW x 140 mmL) besonders ist, ist es schwierig, sie zu erhalten, der Preis ist relativ hoch, und es war eine vergangene Zeit, in der ich darüber nachdachte, sie von Hand herzustellen, aber zu dieser Zeit nachzufüllen Ich habe ein maßgeschneidertes Papier hergestellt, und es war noch leeres Papier übrig, also habe ich nach langer Abwesenheit darüber nachgedacht, es für das nächste Jahr herzustellen. Da es einmal im Jahr ist, kann es handgefertigt werden. Da es jedoch eine spezielle Programmierumgebung gibt, erstellen wir einen Mechanismus, mit dem jedes Jahr automatisch ein Kalender ausgegeben werden kann. Deshalb habe ich versucht zu programmieren.

Drucken:

Verwenden Sie die Funktion "Seriendruck" der Textverarbeitungssoftware. Daher können Kalenderdaten für den Seriendruck erstellt werden. Die Vorlage für "Seriendruck" ist eine Vorlage, die für einen Monat in einem Spread angezeigt wird (siehe Abbildung unten). calrendar_template.png

Daten:

Da ein Monat zu einem Datensatz wird, kann eine Kalenderdatenbank wie die unten gezeigte für den Seriendruck verwendet werden, wenn sie erstellt wird. Dieses Mal habe ich versucht, diese Tabelle mit Python zu erstellen. calrendar_db.png

Der Code lautet wie folgt

.ruby:monthly_calendar.py


import pandas as pd
import numpy as np
import calendar as cl
import os

"""
Vorerst abgeschlossene Version
"""

file='f.csv'
fout=open(file,'w',encoding="utf_8")

#Jahr zu schaffen
YEAR=2021

"""
Erstellen Sie Daten mit der while-Schleife
m--> month
D--> date
out -->Sammeln Sie hier Daten
"""

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')

Es gibt einige Verbesserungen und Funktionserweiterungen wie "Monat" am Anfang des Index der Datenbank und manuelle Eingabe von Feiertagen. Ich werde anfangen zu arbeiten, wenn ich Lust dazu habe.

Recommended Posts

Automatische Erstellung des Monatskalenders 2021 (Nachfüllung für Systemnotizbuch) durch Python
Pandas des Anfängers, vom Anfänger, für den Anfänger [Python]
■ Kaggle-Übung für Anfänger - Einführung von Python - von Google Colaboratory
[Für Anfänger] Grundlagen von Python erklärt durch Java Gold Teil 1
Automatisches Update des Python-Moduls
Automatische Erfassung von Genexpressionsdaten durch Python und R.
[Lass uns mit Python spielen] Ziel ist die automatische Satzgenerierung ~ Abschluss der automatischen Satzgenerierung ~
Erweiterung des Python-Wörterbuchs um Argumente
Persönliche Notizen für die Python-Bildverarbeitung
AWS Layer Creation Script für Python
Verhalten von Python3 durch Sakuras Server
Erste Schritte mit Python3
Aufzeichnung der Python-Einführung für Neulinge
Geschichte der Potenznäherung von Python
Leicht verständliche Erklärung der Python-Webanwendung (Django) auch für Anfänger (2) [Projekterstellung]
Python-Lernnotiz für maschinelles Lernen von Chainer bis zum Ende von Kapitel 2