Seite 1 von 1
Wie kann man eine ecxel tabelle in python auslesen ?
Verfasst: Freitag 31. Januar 2020, 06:52
von SniffySplash769
Ich habe eine frage :"wie liest man eine ecxel tabelle in python tabelle in python aus""
Ich versuche gerade eine chinesische Qlocktwo zu bauen die mit GPIO einzelne Relais ansteuern.
hier ist der google drive link zu den Links:
https://drive.google.com/drive/folders/ ... sp=sharing
ich würde mich auf eine Anleitung Freuen
Danke in Vorraus

Re: Wie kann man eine ecxel tabelle in python auslesen ?
Verfasst: Freitag 31. Januar 2020, 13:20
von __blackjack__
Was ist „python tabelle” und warum willst Du das machen? Sich für diese Uhr die Abhängigkeit zum lesen von Exceldateien für eine Excel-Datei mit mehreren Blättern einzufangen, wo auf einer der drei Seiten Informationen zur Schaltung der GPIOs sind, die offensichtlich für Menschen zum lesen aufbereitet sind und nicht für den Rechner in einem praktischen Format/sinnvoller Anordnung vorliegen, würde ich mir überlegen. Das programmatisch auszulesen wird sicher nicht einfacher als die kleine Tabelle *einmal* manuell in eine brauchbare Datenstruktur zu überführen.
Und ich würde da wohl auch erst einmal versuchen das mit Programmlogik zu lösen. Die Stunden beispielsweise sind ja einfach Pins für die Ziffern 0 bis 9 und einer für die 10er-Stelle. Das lässt sich mit wenigen Zeilen Code abfrühstücken. Und bei den Minuten kann man vielfache von 15 Minuten getrennt vom Rest betrachten. Für das was dann übrig bleibt, könnte vielleicht eine Datenstruktur übrig bleibt.
Re: Wie kann man eine ecxel tabelle in python auslesen ?
Verfasst: Sonntag 9. Februar 2020, 00:46
von __blackjack__
Hier mal ein Programm das eine CSV-Datei erzeugt mit einer Zeile pro Minute von 00:00 bis 23:59 mit den Werten für alle Pins. Ich hoffe ich habe die Infos aus der Dokumentation richtig verstanden.
Code: Alles auswählen
#!/usr/bin/env python3
import lzma
from base64 import b85decode
from pathlib import Path
DATA = """\
{Wp48S^xk9=GL@E0stWa761SMbT8$j;SM_nC|v+L8cF)#oMD83349?#iv*Ewxk3a=G`{zlHWwQD
DRY7w<qex2l6GcV&b9d1@tc}C#!DxKWkqVzKhjSg!{Il$Fy0vQR5&ITfKcl$6^W`=CJMapw`euh
K#TG-oeen8{+y?UY;L19NLGxs(=CQ&8|0yI>=I10aC1s!ai)XQw3snBdcKC%>=zvQJ3IEkI6c}*
`hezMJe&U{!drbe(`WIqmkgU)WFEc9fEJV3s4Fi&a^XM7nH$f6$qy(rvi-;O&^gAya==rMp7>jT
1t=GHdTzu6NVn~xOgT9eI1%wi@(B}3y=no-alcicz)%zQ)!FMTT8O;m+wgh)qo6oTI}bz<@Gsx$
Q=@P|t%8F~<;DBb#M_`d!OEQ=1=Rp8AcKK4TZNDqx`wPAadZ(6y!PKp+hnzi(wRU4py>u9nMgK(
5Gy>z!QX(;)3#JQx{Cy`S4Y<AAkO6(fRzdGenatEG8s8k5e%|bH}V-Z0BhGIxhsEXpHN0tqA2j5
gbT#t<*AFxgAGszv*PEURT>q+0~vh-u_cdJ=zS}qv$RR0)=CkYDjZplUm!7LLK^G{NYl#tkT!gL
!}+CT)xAkqzrAglZs{eI5ES+bM4AGUz9f0WcgSVi*k^!J{Q`^h%WoohDJAIS91HW&I_EjAsm6Sx
5+0ZGuiRDB2-qkg5RT9EVz<mP7d~+YMtb;7=%2oa`l->^%B{>b11mRWNYn<Tz{&Xcf}1Xjqz48&
DKtd7x?eTB3i>1i?h;Z2C85X78y~nmp;OnLMx1|-)QXEQ2WGWwGJU3pq=r(v7_C7?b7FC?HB>wD
W_#f?UjGUT+dtHIm3CjK7cG$@Xbx^%36}49WZFKH-*nSR57dTfqsz`S3fi)~n@Xwet<FP{(@YA{
nu8v>C2>wXn>1l8_o5?PS6mTGzr1D)^B%`DCZK=0iMKRdUZ=;XYw#6JEJF{SrW3F>F(WC8uKs;J
wRFkoY;PKA@hT&9g+3#EnL=R8oFRg2?Zl|_9z>uQozV~uGu(`eWTr(gRGuH>&$4;^tD0zHyD-kQ
L6)+>rrs3&MoQ*vV|PnZXGqyuMSXi{+vO4!_6Ai?MIon(8y!YKnO)KDJ4CIO3u3a72&c*vP|s^0
G9s58<cslsTZPqmO+k<4`s-0Oa-8G+<Z~>jD`*|Lh}lZnM+M7}v6WM^vCvYugVOky!hR1?Gfl_6
sFw~idF5p@=#=Sk8&*a4ihD=|>^q82uRRg4XsY077C<pgx=UgnSeC65bKOqZplxq0=NERMoEXh7
ff%vA0B$N_K8c(9+9{{l2dC%!fmGHuI0D>0X(?AzV?$m77cUc5*rQi9CA*YWL_#lzl`|kfqf>L9
{dX_6JYMv8Gn<8%EQj?T5nqnfZ-^s=g6CI7i*NC6GC|J-Fv{SHyTqpygr)$9VUMj77u>{&gs_+r
C^?gNXlFjjr7@WDF$;TSS0Jh-Q^L41Eg^x-x~Fx^=q?2%42=d!(j1n*grWfW$QZbK+9d$%C{|b%
h0B_NX-tOOj1D?mA{1lF&y3FhboWe?eX{b$SjeP!z?QWc8`HyS@VvAW))Oy1KNO=&XI63pf__+}
8E1k?wu*m_Z|bjf#vX$16~c-*2r>gr7jyg9)X|S2PQ7&SGeEPsj(~DAdCW2|Q(w~Sh>wu`aiKTv
%**7s-~QMyX;=V>&oc(~PJrKH1?d)~II_Cbp>o3lWY%+%vuIs1zzPhHf2$Y;Z7w#BbMuuI7+62o
H!c#y;WY$u%A90hvzqiCaX;s8(^15!74obw^1X-)V=Fq$NbHHo+Kn!oF`*0iR7vxCToWW9oOciC
!s1?ec*oOyrHV?3dTiZ^5=C!|-B2~9N9p@V&SuY22dn*&)KiI`%Tq3kUtZgfpbjiyH4IL9ClR-u
xD`M*tV;}#IJ$cI{EVNIzx*-R-iH2Zc*4x%-Fwypp^cvRJ+#2N`~BCl9wkdLD{V@fwGVD958Js2
s_ol8qvOscRyQ9Q<KtHjEjpeow!e|!GGDxHUUj^E%ySK79pp-qHF_>0jR}4L*#JZ^ClaB>00G1d
yqp98%n%(*vBYQl0ssI200dcD"""
def main():
Path("clock_pin_states.csv").write_bytes(
lzma.decompress(b85decode("".join(DATA.splitlines())))
)
if __name__ == "__main__":
main()