从Excel电子表格分配Python变量

2024-05-20 14:10:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个Python脚本,根据特定的时间(更准确地说是日落和日出)更改我的壁纸,在白天和黑夜之间交替使用两张图片

对于墙纸的改变部分,我已经设法把一些东西放在一起,哪种作品,但现在我碰到了一堵墙,我不知道该走哪条路

我有一个Excel电子表格,有3列(^{-包含日期-,^{-包含时间-,^{-包含时间-),我想用Python创建两个变量(sunrise_today和^{),它们将从电子表格中为我带来今天的相应值。在Excel环境中,这将被称为VLOOKUP,使用TODAY()作为键

这正是我想要的:

screenshot


Tags: 脚本墙纸today环境时间图片excel作品
2条回答

这应该以最小的麻烦拉动适当的行

from datetime import datetime
import pandas

file_path = "Your_Excel_File.xls"
data = pandas.read_excel(file_path, header=0) #I assume the column names are on line 0

#Find today as day of year
day = datetime.now().timetuple().tm_yday

#Grab today's info
sunrise = data["sunrise"][day-1] #Minus 1 to account for 0 based indexing
sunset = data["sunset"][day-1]

这可能不是最好的方法,但您可以使用pandas和openpyxl:

import pandas as pd
from openpyxl import load_workbook

xls_file = "YourFile.xls"
xls_sheet = "YourSheet"
XLSXreader=pd.ExcelFile(xls_file, engine = 'openpyxl')
INP_Data = pd.read_excel(XLSXreader,sheet_name=xls_sheet,eader=1)

这将生成INP_数据,这是一个数据帧。您可以通过以下方式访问这些值:

INP_Data['YourHeaderName']

您可以通过以下方式将其转换为numpy数组:

INP_Data['YourHeaderName'].to_numpy()

检查哪一行是您当前的日期:

Date_Line = INP_Data['YourHeaderName'].to_numpy() == YourCurrentDate

然后通过计算得到上升时间

RisingTime = INP_Data['RisinTimeHeader'].to_numpy()[Date_Line]

注意:查看pd.read_excel函数,以定义要读取的标题行和列

希望能有所帮助。干杯

相关问题 更多 >