Transférer les fichiers vers ''
création du script
This commit is contained in:
parent
ab70db0edf
commit
89e22cd59a
46
convert-ics.py
Normal file
46
convert-ics.py
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# Script de conversion de fichiers calendriers au format CalDAV (.ics) vers un tableur (.csv)
|
||||||
|
# Auteur : Elias Martin - elias@hereli.fr
|
||||||
|
# Licence : EUPL V1.2
|
||||||
|
|
||||||
|
## Credits : https://stackoverflow.com/questions/59958941/calendar-ics-to-csv-in-python
|
||||||
|
## and https://stackoverflow.com/questions/18262293/how-to-open-every-file-in-a-folder
|
||||||
|
## and https://stackoverflow.com/questions/9319317/quick-and-easy-file-dialog-in-python
|
||||||
|
|
||||||
|
import vobject
|
||||||
|
import csv
|
||||||
|
import os, glob
|
||||||
|
from tkinter.filedialog import askopenfilename
|
||||||
|
filename = askopenfilename()
|
||||||
|
|
||||||
|
# Changer cette variable pour écrire dans un nouveau fichier
|
||||||
|
nom_fichier_sortie = "calendriers_mediateurs.csv"
|
||||||
|
|
||||||
|
with open(nom_fichier_sortie, mode='w') as csv_out:
|
||||||
|
|
||||||
|
csv_writer = csv.writer(csv_out, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
|
||||||
|
|
||||||
|
# Changer ces éléments pour renommer les colonnes du fichier de sortie
|
||||||
|
csv_writer.writerow(['Evt', 'Début', 'Fin', 'Description', 'Lieu'])
|
||||||
|
|
||||||
|
# Décommenter (et indenter la fin du script) pour activer
|
||||||
|
#for filename in glob.glob('*.ics'):
|
||||||
|
# read the data from the file
|
||||||
|
#data = open(os.path.join(os.getcwd(), filename)).read()
|
||||||
|
|
||||||
|
#Commenter pour ne pas activer la fenêtre de sélection d'un seul fichier
|
||||||
|
data = open(filename).read()
|
||||||
|
|
||||||
|
# iterate through the contents
|
||||||
|
for cal in vobject.readComponents(data):
|
||||||
|
for component in cal.components():
|
||||||
|
if component.name == "VEVENT":
|
||||||
|
writerow = []
|
||||||
|
for attr in ['summary', 'dtstart', 'dtend', 'description', 'location']:
|
||||||
|
if hasattr(component, attr):
|
||||||
|
writerow.append(getattr(component, attr).valueRepr())
|
||||||
|
else:
|
||||||
|
writerow.append('-')
|
||||||
|
|
||||||
|
#print(writerow)
|
||||||
|
csv_writer.writerow(writerow)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user