在 PySimpleGUI 多行框中输入多个日期
Input multiple dates into PySimpleGUI Multiline box
我希望能够将 Excel 中的日期列表粘贴到 PySimpleGUI 多行框中,并将条目另存为 pandas DateTime 列表。
这是我当前的代码:
layout = [
[sg.Text("Please fill out the following fields:", font=font)],
[
sg.Text("Date List", size=size, font=font),
sg.Multiline(size=(20, 10), font=font, key="date_list"),
],
[
sg.Submit(font=font),
sg.Button("Clear", font=font),
sg.Exit(font=font),
],
]
window = sg.Window("Date list entry form", layout)
这是我从Excel复制过来的:
这是输出:
('Submit', {'date_list': '3/18/2020\n3/19/2021\n3/18/2022'})
如何将 date_list 转换为 pandas 日期时间列表?
调用方法str.splitlines
到values['date_list']
,并通过方法pd.Timestamp
迭代项目。
import pandas as pd
import PySimpleGUI as sg
font = ('Courier New', 11)
layout = [
[sg.Text("Please fill out the following fields:", font=font)],
[
sg.Text("Date List", font=font),
sg.Multiline(size=(20, 10), font=font, key="date_list"),
],
[
sg.Submit(font=font),
sg.Button("Clear", font=font),
sg.Exit(font=font),
],
]
window = sg.Window('Title', layout, finalize=True)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
elif event == 'Submit':
lst = values['date_list'].strip().splitlines()
try:
print(list(map(pd.Timestamp, lst)))
except ValueError:
print('Wrong datetime format')
window.close()
[Timestamp('2020-03-18 00:00:00'), Timestamp('2021-03-19 00:00:00'), Timestamp('2022-03-18 00:00:00')]
我希望能够将 Excel 中的日期列表粘贴到 PySimpleGUI 多行框中,并将条目另存为 pandas DateTime 列表。
这是我当前的代码:
layout = [
[sg.Text("Please fill out the following fields:", font=font)],
[
sg.Text("Date List", size=size, font=font),
sg.Multiline(size=(20, 10), font=font, key="date_list"),
],
[
sg.Submit(font=font),
sg.Button("Clear", font=font),
sg.Exit(font=font),
],
]
window = sg.Window("Date list entry form", layout)
这是我从Excel复制过来的:
这是输出:
('Submit', {'date_list': '3/18/2020\n3/19/2021\n3/18/2022'})
如何将 date_list 转换为 pandas 日期时间列表?
调用方法str.splitlines
到values['date_list']
,并通过方法pd.Timestamp
迭代项目。
import pandas as pd
import PySimpleGUI as sg
font = ('Courier New', 11)
layout = [
[sg.Text("Please fill out the following fields:", font=font)],
[
sg.Text("Date List", font=font),
sg.Multiline(size=(20, 10), font=font, key="date_list"),
],
[
sg.Submit(font=font),
sg.Button("Clear", font=font),
sg.Exit(font=font),
],
]
window = sg.Window('Title', layout, finalize=True)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED:
break
elif event == 'Submit':
lst = values['date_list'].strip().splitlines()
try:
print(list(map(pd.Timestamp, lst)))
except ValueError:
print('Wrong datetime format')
window.close()
[Timestamp('2020-03-18 00:00:00'), Timestamp('2021-03-19 00:00:00'), Timestamp('2022-03-18 00:00:00')]