Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有ICS文件和CSV的Python_Python_Csv_Icalendar - Fatal编程技术网

带有ICS文件和CSV的Python

带有ICS文件和CSV的Python,python,csv,icalendar,Python,Csv,Icalendar,一位朋友问我在个人项目上有什么帮助,但我必须承认我的Python技能是非常基础的 以下是想法: 我必须下载multplieics文件(谷歌日历文件)。 我找到了多DL python程序。它工作得很好。我必须下载的所有文件url都存储在一个txt文件中 文件格式类似于YYYYMMDD_Merdy.ics yyymmdd_test.ics 这里有一个ics文件的示例 BEGIN:VCALENDAR PRODID:-//Google Inc//Google Calendar 70.9054//EN V

一位朋友问我在个人项目上有什么帮助,但我必须承认我的Python技能是非常基础的

以下是想法:

我必须下载multplieics文件(谷歌日历文件)。 我找到了多DL python程序。它工作得很好。我必须下载的所有文件url都存储在一个txt文件中

文件格式类似于YYYYMMDD_Merdy.ics yyymmdd_test.ics

这里有一个ics文件的示例

BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:Chambre Champêtre
X-WR-TIMEZONE:Europe/Paris
BEGIN:VEVENT
DTSTART:20180407T140000Z
DTEND:20180408T080000Z
DTSTAMP:20181002T185454Z
UID:3a4j71mpemgjoo66anfd0tcvrh@google.com
CREATED:20180401T165816Z
DESCRIPTION:
LAST-MODIFIED:20180401T165816Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:direct Chantal
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
DTSTART:20181001T150000Z
DTEND:20181002T080000Z
DTSTAMP:20181002T185454Z
UID:ccs6aor5cor3cbb270r3ab9kcpi6abb26di34b9kc9im8chj75hm4d35cc@google.com
CREATED:20181001T154801Z
DESCRIPTION:
LAST-MODIFIED:20181001T154801Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Ferme
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
我想要的输出是具有以下INF格式的csv文件:

X-WR-CALNAME;DTSTART;DTEND;CREATED;LOCATION;SUMMARY
Chambre Champêtre;20180407T140000Z;20180408T080000Z;20180401T165816Z;direct Chantal;
Chambre Champêtre;20181001T150000Z;20181002T080000Z;20181001T154801Z;Ferme
输出csv文件应包含ICS文件的所有转换

我什么都可以问


谢谢大家的帮助。

下面是一个解决方案。如果有帮助,请告诉我。这里我正在读取目录C:/Users/Dell/Documents中的所有.ics文件。你的情况就不同了

from os import listdir

filenames = listdir(r'C:/Users/Dell/Documents')

for filename in filenames:
    if filename.endswith('.ics'):
        file=open(filename,"r")
        outputhead=['X-WR-CALNAME','DTSTART','DTEND','CREATED','LOCATION','SUMMARY']
        datalist=[]
        outfile=open(filename+'ouput.csv',"w")
        outfile.write(';'.join(outputhead))
        outfile.write('\n')
        outfile.close()
        outfile=open(filename+'ouput.csv',"a+")
        for i in file:
            if i.split(':')[0] in outputhead:
                datalist.append(i.split(':')[1].replace('\n',''))
            if i.split(':')[0]=='SUMMARY':
                outfile.write(';'.join(datalist))
                outfile.write('\n')
                datalist=[]
        outfile.close()