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