- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- hcl: Xiaomi pumpa pumpálás
- bobalazs: 5700x3d+4070S fogyasztása, alulfeszelése
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Mr Dini: Mindent a StreamSharkról!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- bambano: Bambanő háza tája
- Luck Dragon: Asszociációs játék. :)
- mefistofeles: Hoppá, veterán lettem!
Új hozzászólás Aktív témák
-
-
axioma
veterán
válasz
kovisoft #4242 üzenetére
Hm, jogos, latszik h csak a logikai vegeredmenyt neztem
nem vagyok hardverhez szokva...
Akkor is megoldhato kettoben: elsore nem kapcsol csak gyujti, masodikban meg kapcsol mind2 iranyban, csak a zold kivant allapotat update-eli a set-beli allapothoz kepest a muvelet elott. -
axioma
veterán
-
válasz
kovisoft #4238 üzenetére
Aha... Köszi!
A projekt "fő" programja, a tallyarbiter. Ez kommunikál a képkeverővel, figyeli a megadott csatornák állapotát. Egy csatonának 2 "állapotjelzője" van:
-preview csatonára kapcsolva
-program csatornára kapcsolva
A képkeverő csatornáinak az állapotát küldi el a "kliens" programkonak. Ez lehet egy mikrovezérlő(vel egybeépített színes LED), vagy egy relé modul,...
Esetemben a Pi-re kötött relé modul pedig a kapott adatoknak megfelelően kapcsolgatja ki/be a zöld/piros lámpákat attól függően, hogy a képkeverőn hogyan kapcsolták preview vagy program csatornára a kamerákat.A valóságban egyszerübb mint itt elmesélni, leírni a működését
Nézegetem ezt a processTallyData() fügvényt, de mint az a bizonyos borjú az új kapura ... Valahogy nem megy a kód értelmezése (a Python (szemantika) ismeretének hiánya is nehezíti, hogy most éppen mire gondolt a költő: powered_pins.append(gpo["pinNumber"])
Miért van eltárolva a "bekcsolt" lábak listája?
Miért van két külön ciklus a be ill. a kikapcsolásra?
Hová kéne berakni a plussz ellenörzést, és hogyan? Hiszen a ciklus végimegyaz összes előre definiált IO porton. Hogyan ellenörzöm, hogy az adott pi "program"kimenetnek van kapcsolva, vagyis a hozzá tartozó "preview" kimenetet ki kell kapcsolni?Erre még aludni kell párat ...
-
jerry311
nagyúr
válasz
kovisoft #4110 üzenetére
Ha ezt lefuttatom, akkor offolja a LED-eket.
pi@raspberrypi3b:~ $ cat treeoff.py
from tree import RGBXmasTree
tree = RGBXmasTree()
tree.close()
pi@raspberrypi3b:~ $
Gondoltam még, hátha esetleg bezavar a fényesség állítás (
tree = RGBXmasTree(brightness=0.04)
), de ha kiveszem belőle a brightness-t akkor sem kapcsol le tree.close()-ra a színváltós script.Hmmmmmmm...
trree.off() lekapcsolja a LED-eket CTRL+C után.
tree.close() nem.
Hmmmmmm, érdekes.from tree import RGBXmasTree
from colorzero import Color, Hue
import random
import sys
def random_color():
r = random.random()
g = random.random()
b = random.random()
return (r, g, b)
tree = RGBXmasTree(brightness=0.04)
if __name__ == '__main__':
try:
while True:
pixel = random.choice(tree)
pixel.color = random_color()
sleep = 1
except KeyboardInterrupt:
tree.off()
print('Interrupted')
sys.exit(0)
Köszönöm a segítséget.
-
kovisoft
őstag
válasz
kovisoft #4108 üzenetére
Nem az van, hogy a konstruktor kikapcsolja a LED-eket? És amikor egy külön scriptben van csak a close(), akkor lefut a konstruktor, kikapcsolja a LED-eket, nem a close() kapcsolja ki? Mert akkor a végén kell egy tree.off(), az kapcsolná ki, nem a close().
Persze csak találgatok.
-
jerry311
nagyúr
válasz
kovisoft #4108 üzenetére
Nope, sleep nem segít, sys.exit eltávolítása sem.
except KeyboardInterrupt:
tree.close()
print('Interrupted')
time.sleep(1)
sys.exit(0)
except KeyboardInterrupt:
tree.close()
print('Interrupted')
time.sleep(1)
# sys.exit(0)
Egyébként ez a példakód volt a kiindulási alap: [link]
-
repvez
addikt
válasz
kovisoft #4000 üzenetére
hát blenderben kiszinezi a parancsokat ,de leforditani a python consolban csináltam ott csak mint egy DOS parancsoros kijezöt látok nincs semmi menö rendsze, de ott legalább ha hiányol valamit akkor lefuttatok egy PIP instalt és már fut a kod, mig máshol nem mindegy, hogy hova telepitem a szukséges modulokat libeket stb,meg még be is kell emelni a keretrendszerbe .
VS22ben is néztem de az sokkal bonyolultabb és a fenti problémák miatt le sem fordul az a kod mig a consolban igen -
repvez
addikt
válasz
kovisoft #3996 üzenetére
probáltam több félét ide oda másolgattam mig egyszercsak müöködött. meg a gond az volt, hogy a dxf file-t nem egyformán mutatja vagy olvassa be a külöbözö programok, az infranview és a PS hibát dobot rá, pedig elvileg kezelik, a blenderbe se mindig mutatta ,
Egyébként ha ennyire fontos a szóköz és a tab akkor miért nem jelzik valahogy a szerkesztöben ugy mint egy sima word dokumentumnál, hogy mikor milyen karakter volt leütve, segég elemként ami láthatatlan a formázásnál?
-
kovisoft
őstag
válasz
kovisoft #3996 üzenetére
Annyit még kiegészítésképpen, hogy a Python érzékeny az indentálásra, hiszen ezzel jelezzük a blokkokat a kódban. Mindenképpen egységes tabulálást kellene használni, de leginkább javasolt, ha mindenhol egységesen szóközöket használsz, hiszen a tab-ok mérete állítható, sőt van szövegszerkesztő, amely soft és hard tabokat vegyesen használ (pl. 1 tab leütés = 4 szóköz, 2 tab leütés = 1 db 8-as tab karakter
) .
A miértekről sokat lehet olvasni, ha mondjuk rákeresel a python space tab keresőszavakra, pl: Tabs or Spaces?
-
repvez
addikt
válasz
kovisoft #3994 üzenetére
az IF sorra és az alatta lévöre jön hiba de nem tudom, hogy tudnám megnézni, hogy hol van a szoköz vagy tab hiba, látszolag egyhelyen vannak.
> import ezdxf
>>> from openpyxl import load_workbook
>>>
>>> # Load the Excel file
>>> workbook = load_workbook(filename='G:\g_ref\cross\intersection_points.xlsx')
>>> worksheet = workbook.active
>>>
>>> # Create a new DXF file
>>> doc = ezdxf.new(dxfversion='R2010')
>>> msp = doc.modelspace()
>>>
>>> # Read the coordinates from the Excel file
>>> max_row = worksheet.max_row
>>> for i in range(2, max_row+1):
... x = worksheet.cell(row=i, column=1).value
... y = worksheet.cell(row=i, column=2).value
... z = worksheet.cell(row=i, column=3).value
...
>>> # Check if any of the cells are empty
>>> if x is not None and y is not None and z is not None:
File "<stdin>", line 1
if x is not None and y is not None and z is not None:
IndentationError: unexpected indent
>>> msp.add_point((x, y, z))
File "<stdin>", line 1
msp.add_point((x, y, z))
IndentationError: unexpected indent
>>>
>>> # Save the DXF file
>>> doc.saveas('G:\g_ref\cross\coordinates.dxf')
>>> -
válasz
kovisoft #3971 üzenetére
Kicsit konkrétabb algoritmust kérhetek? Hogy lehet röptében összehasonlítani az intervallumokat?
A 2 lista nem feltétlenül egyforma elemszámú.
Kell nekem egyáltalán két lista az intervalumokkal? Eleve 1 lista 1 milliárd elemmel is nagyon sok helyet foglal, nemhogy kettő. -
Hege1234
addikt
válasz
kovisoft #3867 üzenetére
köszi a részletezést!
vagyis akkor én fókuszáltam rossz felé mert tartalmaz ilyen részeket
csak arra koncentráltam, hogy a linkekhez kiszedjem az adatokat..
[kép]
vagyis akkor ezeket kellene feltöltenem nullkkal és a következő lépésben felhasználnom a sorbatételhez?[*][*].clips[0].product.season
[*][*].clips[0].product.episodea szezonban lévő számot kiegészítem az S betűvel
az epizódot pedig E-vel
így valami hasonlót kellene használnom hozzá amit disney-nél is használtam?regex2 = r'S([1-9]*[0-9])\s?E([1-9]*[0-9]):?'
def replacer2(y):
a, b = y.groups()
return 'S' + a.rjust(2, '0') + 'E' + b.rjust(2, '0')S02E05
-
Hege1234
addikt
válasz
kovisoft #3865 üzenetére
köszi, a ValueError nagyon jól jött
így már a "randomok" benne
szépen a végére kerülneka sorba rendezett id-kat elkezdtem requests-el kibontogatni
amiből összeillesztem az évadban lévő linkeketegy részlet belőle, mert túl hosszú lenne a hsz. az összes részt betenni ide
['https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-169-resz-c_12873171','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-17-resz-c_12873019','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-170-resz-c_12873172','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-171-resz-c_12873173','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-178-resz-c_12873180','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-179-resz-c_12873181','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-18-resz-c_12873020','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-180-resz-c_12873182','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-181-resz-c_12873183','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-182-resz-c_12873184','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-183-resz-c_12873185','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-19-resz-c_12873021','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-2-evad-1-resz-c_12947030','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-2-evad-10-resz-c_12947042','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-2-evad-100-resz-c_12947296','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-2-evad-101-resz-c_12947344','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-2-evad-109-resz-c_12947352','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-2-evad-11-resz-c_12947046','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-2-evad-110-resz-c_12947353','https://www.rtlmost.hu/elif-a-szeretet-utjan-p_8201/elif-2-evad-111-resz-c_12947354']
mivel pár sorozatnál az évadon belül sem figyeltek a sorrendre
ezért listába tettem a linkeket és simán a.sort()
-ot használtam hozzá
mivel a linkek miatt a sort_key-es replace nem tud működni, mit lehetne helyette használni,
hogy az egyjegyű, többjegyű számok ne borítsák meg a sorrendet? -
-
olivera88
veterán
válasz
kovisoft #3810 üzenetére
"A linkelt oldalon van egy példa, amiben egy n változót használ arra, hogy meddig menjen."
Azt tudom h meddig kell h menjen, nem ez volt a kérdés, hanem h ne kelljen mindig átírni h meddig menjem, mert nem minden fájlban ugyanannyi mező van, van hogy 102 ig kell h menjen, az 12z futásnál viszont már 114 ig, és ezt mindig át kell írnom a scriptbe, arra kerestem megoldást ami automatikusan max számig el megy, tehát ne nekem kelljen megadni h 102, 114, 72, hanem magátol menjen addig attól függően h mennyi mező van a fájlba.
Lehetne állandóan ugyanaz a szám is ameddig el megy minden futásnál, csak akkor üres térképeket fog generálni, a program hibája elvileg, h nem áll meg ha már nincs több mező, hanem tovább és üres térképet generál. -
kovisoft
őstag
válasz
kovisoft #3810 üzenetére
Próbáltam olyan példaprogramot keresni, ahol ez a két dolog egybe van gyúrva, de sajnos nem találok ilyet. Talán a codes_grib_iterator vagy codes_keys_iterator használható valahogy.
De ha ezzel nem jutsz előrébb, akkor próbáld ki azt, hogy mi történik, ha túl nagy grib_field_position-t adsz meg. Valószínűleg ilyenkor kapsz valamilyen exceptiont. Ezt az exceptiont elkaphatod és arra használhatod, hogy kilépj a ciklusból. A ciklus maga meg legyen végtelen vagy menjen valami nagy számig.
-
olivera88
veterán
válasz
kovisoft #3808 üzenetére
Arról igen. Hogy találtad el
Nem értetted amit szerettem volna, azt tudom mennyi mező van egy grib fájlban, az a gond h mindig át kell írkálni a scriptben, ezért kellene olyasmi ami mindig utsó számig megy. Éjféli futás esetén 102 egyes paramétereknél, a 06 futásnál 72 előbb említett paraméternél, aztán 12 es futásnál 114. -
-
válasz
kovisoft #3790 üzenetére
Nagyon furi. A nehany soros megoldasod mukodik es itt az ominozus reszlet a leetFile-bol:
P@$sw0rd
P@$$word
P@$$w0rd
P@$5word
P@$5w0rd
P@5sword
P@5sw0rdMivel a shellben is gondjaim vannak ezzel, nem lehet, hogy onnan eredeztetheto a problema? Jelen pillanatban zsh-bol megy, megnezem bash-ban.
MOD: bash-ben sem mukodik (nem a zsh-bol inditottam).
-
-
-
-
SzVFE1
csendes tag
válasz
kovisoft #3410 üzenetére
Akkor szerinted ez a terminál vezérlés Python alatt semmilyen módszerrel nem kivitelezhető? Mindenesetre megcsináltam, amit javasoltál, a következő kóddal a következőt dobta ki. Nem tudom, hogy az 1000:1000 koordinátákkal eltaláltam-e a felületet, de nagyméretben az teszi ki a képernyő döntő részét.
from pywinauto.application import Application
app = Application(backend='uia').start('"C:\\Program Files (x86)\\Mobatek\\MobaXterm\\MobaXterm.exe"').connect(title='val',timeout=100)
textEditor = app.val.child_window(control_type="Tab").wrapper_object()
getline = app.val.child_window(auto_id="67104", control_type="Edit").wrapper_object()
top_wnd = app.top_window().wrapper_object()
print (control)
Eredmény:uiawrapper.UIAWrapper - '', Dialog
Process finished with exit code 0
Ezzel tudunk valamit kezdeni?
-
SzVFE1
csendes tag
válasz
kovisoft #3407 üzenetére
Igen, ahogy mondod a type_keys van használva. Bevágom akkor alább a teljes fastruktúrát, hogy látni lehessen, hogy mennyire kevés a választék. Az alábbi kóddal simán megy a beleírás és a tab váltás is. A tab control alatti pane contol-okkal szintén. Nem ragaszkodom a pywinauto-hoz, bármilyen módszer tökéletes lenne, amivel parancsokat tudnék küldeni a MobaXterm adott tab-jába és szöveget tudnék kiolvasni belőle.
from pywinauto.application import Application
app = Application(backend='uia').start('"C:\\Program Files (x86)\\Mobatek\\MobaXterm\\MobaXterm.exe"').connect(title='val',timeout=100)
textEditor = app.val.child_window(control_type="Tab").wrapper_object()
textEditor.type_keys("^{TAB 2}")
textEditor.type_keys("test",with_spaces = True)
Control Identifiers:
Dialog - 'val' (L-11, T-11, R3851, B2111)
['Dialog', 'val', 'valDialog', 'val0', 'val1', 'Dialog0', 'Dialog1']
child_window(title="val", control_type="Window")
|
| Pane - '' (L0, T131, R3840, B173)
| ['Pane', 'Pane0', 'Pane1']
| child_window(auto_id="67100", control_type="Pane")
| |
| | Pane - '' (L0, T131, R360, B173)
| | ['Pane2']
| | child_window(auto_id="67102", control_type="Pane")
| | |
| | | Edit - '' (L6, T143, R354, B167)
| | | ['Edit']
| | | child_window(auto_id="67104", control_type="Edit")
| |
| | Pane - '' (L364, T131, R3778, B173)
| | ['Pane3']
| | child_window(auto_id="67108", control_type="Pane")
|
| Pane - '' (L0, T2070, R3840, B2100)
| ['Pane4']
| child_window(auto_id="67098", control_type="Pane")
|
| Pane - '' (L0, T64, R3840, B131)
| ['Pane5']
| child_window(auto_id="67096", control_type="Pane")
|
| Pane - '' (L0, T173, R360, B2070)
| ['Pane6']
| child_window(auto_id="66876", control_type="Pane")
| |
| | Pane - '' (L0, T173, R360, B2070)
| | ['Pane7']
| | child_window(auto_id="66878", control_type="Pane")
| | |
| | | TabControl - '' (L0, T173, R360, B2070)
| | | ['TabControl']
| | | child_window(auto_id="132416", control_type="Tab")
| | | |
| | | | Pane - '' (L52, T177, R356, B2066)
| | | | ['Pane8']
| | | | child_window(auto_id="66884", control_type="Pane")
| | | | |
| | | | | Pane - '' (L52, T177, R356, B2066)
| | | | | ['Pane9']
| | | | | child_window(auto_id="66886", control_type="Pane")
| | | | | |
| | | | | | TreeView - '' (L52, T177, R356, B2066)
| | | | | | ['TreeView']
| | | | | | child_window(auto_id="132424", control_type="Tree")
| | | | | | |
| | | | | | | TreeItem - 'User sessions' (L96, T177, R195, B211)
| | | | | | | ['User sessionsTreeItem', 'TreeItem', 'User sessions', 'TreeItem0', 'TreeItem1']
| | | | | | | child_window(title="User sessions", control_type="TreeItem")
| | | | | | |
| | | | | | | TreeItem - 'val' (L122, T211, R146, B245)
| | | | | | | ['val2', 'valTreeItem', 'TreeItem2']
| | | | | | | child_window(title="val", control_type="TreeItem")
| | | |
| | | | TabItem - '' (L2, T175, R50, B229)
| | | | ['TabItem', 'TabItem0', 'TabItem1']
| | | |
| | | | TabItem - '' (L2, T229, R50, B283)
| | | | ['TabItem2']
| | | |
| | | | TabItem - '' (L2, T283, R50, B337)
| | | | ['TabItem3']
|
| Pane - '' (L366, T173, R3840, B2070)
| ['Pane10']
| child_window(auto_id="67090", control_type="Pane")
| |
| | ListBox - '' (L306, T113, R307, B114)
| | ['ListBox']
| | child_window(auto_id="67094", control_type="List")
| |
| | Pane - '' (L366, T173, R3840, B2070)
| | ['Pane11']
| | child_window(auto_id="67092", control_type="Pane")
| | |
| | | Dialog - '' (L366, T173, R3840, B2070)
| | | ['Dialog2']
| | | |
| | | | ScrollBar - 'Függőleges' (L3814, T173, R3840, B2070)
| | | | ['Függőleges', 'ScrollBar', 'FüggőlegesScrollBar']
| | | | child_window(title="Függőleges", auto_id="NonClientVerticalScrollBar", control_type="ScrollBar")
| | | | |
| | | | | Button - 'Egy sorral fel' (L3814, T173, R3840, B199)
| | | | | ['Egy sorral felButton', 'Button', 'Egy sorral fel', 'Button0', 'Button1']
| | | | | child_window(title="Egy sorral fel", auto_id="UpButton", control_type="Button")
| | | | |
| | | | | Button - 'Egy sorral le' (L3814, T2044, R3840, B2070)
| | | | | ['Button2', 'Egy sorral leButton', 'Egy sorral le']
| | | | | child_window(title="Egy sorral le", auto_id="DownButton", control_type="Button")
|
| TitleBar - '' (L24, T-8, R3840, B34)
| ['TitleBar']
| |
| | Menu - 'Rendszer' (L0, T0, R22, B22)
| | ['Rendszer', 'Menu', 'RendszerMenu', 'Rendszer0', 'Rendszer1', 'Menu0', 'Menu1']
| | child_window(title="Rendszer", auto_id="MenuBar", control_type="MenuBar")
| | |
| | | MenuItem - 'Rendszer' (L0, T0, R22, B22)
| | | ['RendszerMenuItem', 'MenuItem', 'Rendszer2', 'MenuItem0', 'MenuItem1']
| | | child_window(title="Rendszer", control_type="MenuItem")
| |
| | Button - 'Kis méret' (L3627, T11, R3698, B33)
| | ['Button3', 'Kis méret', 'Kis méretButton']
| | child_window(title="Kis méret", control_type="Button")
| |
| | Button - 'Előző méret' (L3698, T11, R3768, B33)
| | ['Előző méretButton', 'Button4', 'Előző méret']
| | child_window(title="Előző méret", control_type="Button")
| |
| | Button - 'Bezárás' (L3768, T11, R3851, B33)
| | ['BezárásButton', 'Button5', 'Bezárás']
| | child_window(title="Bezárás", control_type="Button")
|
| Menu - 'Alkalmazás' (L0, T23, R2560, B42)
| ['AlkalmazásMenu', 'Alkalmazás', 'Menu2']
| child_window(title="Alkalmazás", auto_id="MenuBar", control_type="MenuBar")
| |
| | MenuItem - '' (L0, T23, R57, B42)
| | ['MenuItem2']
| |
| | MenuItem - '' (L57, T23, R116, B42)
| | ['MenuItem3']
| |
| | MenuItem - '' (L115, T23, R153, B42)
| | ['MenuItem4']
| |
| | MenuItem - '' (L153, T23, R208, B42)
| | ['MenuItem5']
| |
| | MenuItem - '' (L209, T23, R250, B42)
| | ['MenuItem6']
| |
| | MenuItem - '' (L249, T23, R298, B42)
| | ['MenuItem7']
| |
| | MenuItem - '' (L299, T23, R355, B42)
| | ['MenuItem8']
| |
| | MenuItem - '' (L355, T23, R407, B42)
| | ['MenuItem9']
| |
| | MenuItem - '' (L407, T23, R445, B42)
| | ['MenuItem10']
-
SzVFE1
csendes tag
válasz
kovisoft #3404 üzenetére
Szöveget beleírni a Tab vagy Pane control kiválasztásával sikeresen tudok, csak a kiolvasás nem akar nekem menni. Edit control-ból 2 szokott lenni, az egyik ráadásul el is szokott tűnni a fa struktúrából valami miatt. Lefut a get_line rájuk hibaüzenet nélkül ha a 0-ás sort adom meg, de nem olvas ki semmit. A from_point-ot hogyan kéne esetemben használni? Nem veszélyes abból a szempontból, hogy a kódnak más gépeken, más felbontással is működnie kell? Arra gondolok, ha mondjuk pl. a felhasználó kisméretűben használja az ablakot a képernyő egy random részén, akkor máshova esnek a koordináták.
-
-
SzVFE1
csendes tag
válasz
kovisoft #3396 üzenetére
Annyi a gáz, hogy így is alig találtam meg azt a child window-t, amivel kontrollálni tudom a MobaXterm-et. Végül kiderült, hogy ezek control_type="Tab" és control_type="Pane" tulajdonságokkal szerepelnek. Sajnos a control_type="Pane" -ek sem szűkítik le tab-ra, csak ablakra a célt, ezért elégnek találtam a control_type="Tab" -ot használni. Az ablakba írás működik is vele tökéletesen. A másik ok pedig az volt, hogy a control_type="Tab" -ból szerencsére egyetlen létezik, míg control_type="Pane" -ből több, ezért tovább kellene szűkíteni auto_id alapján, ami folyamatosan változik, egyszer használható, így ez lehetetlen küldetésnek tűnik. Bemásolom ide alább a fa struktúra vonatkozó részét, az alapján esetleg lenne ötlet, hogy hogyan változtassam?
Még egy kérdés, a textEditor az egy objektum, nem egy tetszőleges névvel megadható változó?
| | | child_window(auto_id="132416", control_type="Tab")
| | | |
| | | | Pane - '' (L52, T177, R356, B2066)
| | | | ['Pane8']
| | | | child_window(auto_id="197962", control_type="Pane")
| | | | |
| | | | | Pane - '' (L52, T2013, R356, B2066)
| | | | | ['Pane9']
| | | | | child_window(auto_id="67182", control_type="Pane")
| | | | | |
| | | | | | CheckBox - ' Follow terminal folder' (L78, T2013, R356, B2066)
| | | | | | ['CheckBox', ' Follow terminal folder', ' Follow terminal folderCheckBox']
| | | | | | child_window(title=" Follow terminal folder", auto_id="67184", control_type="CheckBox")
| | | | |
| | | | | Pane - '' (L52, T177, R356, B216)
| | | | | ['Pane10']
| | | | | child_window(auto_id="67180", control_type="Pane")
| | | | |
| | | | | ListBox - '' (L52, T249, R356, B1961)
| | | | | ['ListBox', 'ListBox0', 'ListBox1']
| | | | | child_window(auto_id="132696", control_type="List")
| | | | | |
| | | | | | Header - 'Fejlécellenőrzés' (L52, T249, R356, B274)
| | | | | | ['Fejlécellenőrzés', 'Header', 'FejlécellenőrzésHeader']
| | | | | | child_window(title="Fejlécellenőrzés", auto_id="Header", control_type="Header")
| | | | | | |
| | | | | | | HeaderItem - 'Name' (L52, T249, R536, B274)
| | | | | | | ['NameHeaderItem', 'HeaderItem', 'Name', 'HeaderItem0', 'HeaderItem1']
| | | | | | | child_window(title="Name", auto_id="HeaderItem 0", control_type="HeaderItem")
| | | | | | |
| | | | | | | HeaderItem - 'Size (KB)' (L0, T0, R0, B0)
| | | | | | | ['HeaderItem2', 'Size (KB)', 'Size (KB)HeaderItem']
| | | | | | | child_window(title="Size (KB)", auto_id="HeaderItem 1", control_type="HeaderItem")
| | | | | | |
| | | | | | | HeaderItem - 'Last modified' (L0, T0, R0, B0)
| | | | | | | ['HeaderItem3', 'Last modifiedHeaderItem', 'Last modified']
| | | | | | | child_window(title="Last modified", auto_id="HeaderItem 2", control_type="HeaderItem")
| | | | | | |
| | | | | | | HeaderItem - 'Owner' (L0, T0, R0, B0)
| | | | | | | ['HeaderItem4', 'OwnerHeaderItem', 'Owner']
| | | | | | | child_window(title="Owner", auto_id="HeaderItem 3", control_type="HeaderItem")
| | | | | | |
| | | | | | | HeaderItem - 'Group' (L0, T0, R0, B0)
| | | | | | | ['Group', 'HeaderItem5', 'GroupHeaderItem']
| | | | | | | child_window(title="Group", auto_id="HeaderItem 4", control_type="HeaderItem")
| | | | | | |
| | | | | | | HeaderItem - 'Access' (L0, T0, R0, B0)
| | | | | | | ['AccessHeaderItem', 'HeaderItem6', 'Access']
| | | | | | | child_window(title="Access", auto_id="HeaderItem 5", control_type="HeaderItem")
| | | | | |
| | | | | | ScrollBar - 'Vízszintes' (L52, T1935, R356, B1961)
| | | | | | ['Vízszintes', 'VízszintesScrollBar', 'ScrollBar', 'ScrollBar0', 'ScrollBar1']
| | | | | | child_window(title="Vízszintes", auto_id="NonClientHorizontalScrollBar", control_type="ScrollBar")
| | | | | | |
| | | | | | | Button - 'Egy oszloppal balra' (L52, T1935, R78, B1961)
| | | | | | | ['Egy oszloppal balra', 'Egy oszloppal balraButton', 'Button', 'Button0', 'Button1']
| | | | | | | child_window(title="Egy oszloppal balra", auto_id="UpButton", control_type="Button")
| | | | | | |
| | | | | | | Thumb - 'Elhelyezés' (L78, T1935, R126, B1961)
| | | | | | | ['Thumb', 'Elhelyezés', 'ElhelyezésThumb']
| | | | | | | child_window(title="Elhelyezés", auto_id="ScrollbarThumb", control_type="Thumb")
| | | | | | |
| | | | | | | Button - 'Egy oldallal jobbra' (L126, T1935, R330, B1961)
| | | | | | | ['Button2', 'Egy oldallal jobbra', 'Egy oldallal jobbraButton']
| | | | | | | child_window(title="Egy oldallal jobbra", auto_id="DownPageButton", control_type="Button")
| | | | | | |
| | | | | | | Button - 'Egy oszloppal jobbra' (L330, T1935, R356, B1961)
| | | | | | | ['Egy oszloppal jobbraButton', 'Egy oszloppal jobbra', 'Button3']
| | | | | | | child_window(title="Egy oszloppal jobbra", auto_id="DownButton", control_type="Button")
| | | | | |
| | | | | | ListItem - '..' (L52, T274, R1649, B307)
| | | | | | ['ListItem', '..ListItem', '..']
| | | | | | child_window(title="..", control_type="ListItem")
| | | | |
| | | | | Edit - '' (L52, T216, R356, B249)
| | | | | ['Edit2']
| | | | | child_window(auto_id="66952", control_type="Edit")
| | | |
| | | | TabItem - '' (L2, T175, R50, B229)
| | | | ['TabItem', 'TabItem0', 'TabItem1']
| | | |
| | | | TabItem - '' (L2, T229, R50, B283)
| | | | ['TabItem2']
| | | |
| | | | TabItem - '' (L2, T283, R50, B337)
| | | | ['TabItem3']
| | | |
| | | | TabItem - '' (L2, T337, R50, B391)
| | | | ['TabItem4'] -
lanszelot
addikt
válasz
kovisoft #3074 üzenetére
A netről néztem úgy telepítettem django-t. Azt parancssorból kell telepíteni, gondolom leszedni is.
De azt is írtam, hogy egy progi dobta fel nem én, tehát fogalmam sincs mit rakott mellé /olyat mint django/ amit még le kellene gyalulnom parancssorból.
Mert hiába gyúrom le az alap progit az appok közül, ha ott hagyom a szemetet, ami miatt megint nem megy majd.sztanozs:
link -
lanszelot
addikt
-
-
garga01
őstag
válasz
kovisoft #2990 üzenetére
Igen, ezzel az üzenettel elszáll:
Traceback (most recent call last):
File "C:\speedport\decode.py", line 41, in <module>
main()
File "C:\speedport\decode.py", line 36, in main
payload_type = zcu.zte.read_payload_type(infile)
File "C:\Program Files\Python39\lib\site-packages\zcu-0.1.0-py3.9.egg\zcu\zte.py", line 51, in read_payload_type
File "C:\Program Files\Python39\lib\site-packages\zcu-0.1.0-py3.9.egg\zcu\zte.py", line 45, in read_payload
AssertionError
De nem csak a saját config fájlommal, a minták között lévővel is, amit tudnia kellene dekódolnia. Olyan, mintha az OS-el vagy Python verzióval lenne gond. Mondjuk már kínomban kipróbáltam egy rakás python verziót, minddel ugyanez a hibajelenség. -
válasz
kovisoft #2981 üzenetére
Köszi, tényleg ez volt a gond
Most már továbbment, most ez jött elő:
Didn't find welcome message in response.
Something might be wrong. Log in manually.
Fogalmam sincs ehhez mit kellene módosítani, hogy elfogadja, illetve hogy lehet kiíratni, hogy jelenleg mit kap eredménynek a mech
-
mylastage
csendes tag
-
Jhuzaka
friss újonc
válasz
kovisoft #2877 üzenetére
szia kovisoft, köszi a megoldást, valami hasonlóra gondoltam igen, leírom pontosan a várt végeredményt:
rendelésfelvétel napja : 2020.11.15
kiszállítás napja: 2020.11.19 Csütörtöka rendelésfelvétel napja adott az import datetime-ból, ezután az input("kiszállítás napja: ")
( ide jönne pl 11.19) és az ahhoz tartozó nap automatikusan. -
concret_hp
addikt
válasz
kovisoft #2841 üzenetére
ez majdnem jó, igaz hogy nem írtam le pontosan, de utána összehasonlításra is használnám arra meg nem jó
"Even if two unicode strings are normalized and look the same to a human reader, if one has combining characters and the other doesn’t, they may not compare equal."
szóval azt kéne megoldanom, hogy van N darab forrás szövegem, amiben néha van ékezet, meg ilyen olyan kalapos meg mindenféle betűk, néha meg nincs.
-
cog777
senior tag
válasz
kovisoft #2775 üzenetére
Az nem baj ha elcsusznak a szalak egymashoz kepest? Latom eselyet annak hogy valamelyik hamarabban vegez mint a masik, tehat nem lesznek szinkronban.
Szerk: ja, latom hogy fontos az egyszerre indulas.
Akkor en a flag-es megoldast valasztanam vagy a joinolost@asuspc96: pythonban van automata GC, nem lesz szivargas.
-
cog777
senior tag
válasz
kovisoft #2772 üzenetére
Haha... koszi.
Akkor (szamomra) marad a flag-es megoldas, hacsak nincs jobb otleted.
Csinalni kell egy listat flagekkel:
finished_task = [False, False, False, False]Mindegyik task a sajatjat True-ra allitja ha vegzett.
A vezerlo ciklusban pedig addig var az uj iteraciora, amig mind nem lesz True.
(Bar ahogy emlitettem, mivel nagy projektekkel dolgozunk, inkabb hajlok a KISS-re
es a szalnelkulisegre pont azert mert egyszerubb. )
-
cog777
senior tag
válasz
kovisoft #2768 üzenetére
Jah, tenyleg... akkor gondolom joinolni kell a szalakat a vegen,
while True:
for i in range(len(self.relay_threads)):
self.relay_threads[i].start()
for i in range(len(self.relay_threads)):
self.relay_threads[i].join()Vagy valami flag-et beallitani ha vegzett az osszes, addig var.
-
Janos46
tag
válasz
kovisoft #2714 üzenetére
3-ast használok. Az átküldött program F pontját futtasd le. Ezt írja ki:
Traceback (most recent call last):
File "/media/pi/FEKETE/Kesz_lesz/Pyrthon_oktato.py", line 126, in <module>
mylcd.lcd_display_string(get_ip_address('eth0'), 2)
File "/media/pi/FEKETE/Kesz_lesz/Pyrthon_oktato.py", line 123, in get_ip_address
struct.pack('256s', ifname[:15])
struct.error: argument for 's' must be a bytes object
------------------------------------------------------------
Ez pedig az ifconfig:
pi@raspberrypi:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.137 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::e092:4c9a:94f4:d2e1 prefixlen 64 scopeid 0x20<link>
ether dc:a6:32:72:44:4a txqueuelen 1000 (Ethernet)
RX packets 1367 bytes 1014588 (990.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 887 bytes 125612 (122.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 90 bytes 45284 (44.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 90 bytes 45284 (44.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.133 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::a832:8cdf:a38b:1346 prefixlen 64 scopeid 0x20<link>
ether dc:a6:32:72:44:4c txqueuelen 1000 (Ethernet)
RX packets 142 bytes 20973 (20.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 41 bytes 7175 (7.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
pi@raspberrypi:~ $ -
Janos46
tag
válasz
kovisoft #2710 üzenetére
Ez az az oldal, amit már megcsináltam és abból csak az nem futtatható. Egyébként privben elküldöm a művemet (remélem nem veszed zokon, és hát nem is vagy rászorulva). Lenne helyette más program is, csak a leírás miatt használnám a benne lévőt.
https://www.circuitbasics.com/raspberry-pi-i2c-lcd-set-up-and-programming/
Egyébként az alábbit is berakhatnám helyette, de a leírást nem tudnám produkálni, ráadásul én nem tudom megoldani az LCD-n való megjelenítést. Nekem a google fordító mindig be van kapcsolva, és így nem okoz problémát semmilyen nyelv. LOL.import socket
import requests
url = "http://checkip.dyndns.org"
request = requests.get(url)
clean = request.text.split(': ', 1)[1]
your_ip = clean.split('</body></html>', 1)[0]
def getNetworkIp():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.connect(('<broadcast>', 0))
return s.getsockname()[0]
print (("Külső IP: "),(your_ip))
print (("Saját IP: "),(getNetworkIp()))
Ezért kértem a segítséget. -
kissb528
friss újonc
válasz
kovisoft #2655 üzenetére
Most égek ki teljsen....
file = open("magyar értelmező szótár a-betű.txt","r",encoding="utf-8")
text = file.read()
list1 = text.splitlines()
file.close()
És még így sem működik....Traceback (most recent call last):
File "/home/xy/PycharmProjects/Kísérletezés/Experiment1.py", line 26, in <module>
text = file.read()
File "/usr/lib/python3.5/codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe1 in position 3: invalid continuation byte
Arra gondoltam még hogy talán eleve a fájllal lehet baj mait be akarok olvasni? Pedig az egy sima plain text egy jegyzettömbfájl. Valmi ötlet? -
kissb528
friss újonc
válasz
kovisoft #2653 üzenetére
Rendben köszi. Akkor a javított verzióm így néz ki:
answer = input(" ")
#list = ["alma", "apa", "alap", "alak", "auto"]
while answer[0] == "a":
file = open("magyar értelmező szótár a-betű.txt","rt",encoding='utf-8') and print("fájl megnyitva")
text = file.read()
print("fájl beolvasva")
list1 = text.splitlines()
print("fájl listázva")
if answer in list1:
print("benne van a szótárban")
else:
print("új listához adás")
file.close()
break
else:
print("nincs benne az A szótárban")
Viszont így sajnos ezt a hibaüzenetet dobálja:alma
Traceback (most recent call last):
File "/home/xy/PycharmProjects/Kísérletezés/Experiment1.py", line 34, in <module>
text = file.read()
AttributeError: 'NoneType' object has no attribute 'read'
fájl megnyitva
Ötlet hol ronthattam el? Biztos nagyon alap hiba de hát ennyire kező vagyok.... -
Korcsii
őstag
válasz
kovisoft #2563 üzenetére
Szuper, köszi, működik!
Elvileg szerintem is illene tudnia az éjezeteket, de nem egyszerű a helyzet, asterisk telefonkönyvébe megy át az import carddavból, és az viszont kihalt, ASCII-t kért. Majd még szerintem futok egy kört később. (Eleve telefonkönyvbe imporálgatás helyett valós időben lenne jobb lekérni)
-
válasz
kovisoft #2510 üzenetére
Hát... elbizonytalanítottál, és valóban
vissza kerestem egy régi projectem és láss csodát:def ido(tabla):
db = MySQLdb.connect("localhost","user","jelszo","dbname")
cursor = db.cursor()
sql=("""SELECT %s FROM run_dates""" % (tabla,))
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
ido = row[0]
return ido
és mondjuk itt meg is találtam volna a válaszom, mert egy éve már használtam ugyan ezt
De ezek szerint ezt is rosszúl? -
válasz
kovisoft #2507 üzenetére
értem, köszönöm
De tábla névvel működikDe ha az mondjátok így ne, akkor csak olyan megoldásom van hogy:
def vanalert(holvan):
db = MySQLdb.connect("localhost","user","jelszo","dbneve",charset="utf8",use_unicode=True)
if holvan == "klub":
helyseg = 1
elif holvan == "konyha":
helyseg = 2
elif holvan == "szoba":
helyseg = 3
cursor = db.cursor()
cursor.execute("""SELECT * FROM weather_alert""")
results = cursor.fetchall()
for row in results:
darab = row[helyseg]
return darab
(ez egyébként működik is)
maga a tábla egyébként ennyiés az ötletem eredetileg azért született hogy ha ide fel kerül égy oszlop, akkor ne keljen a funkcióba is bele nyúlni, elég legyen az azt meghívó program beírni hogy pl szoba1.
-
válasz
kovisoft #2500 üzenetére
szia,
bocsánat, azt nem vettem észre.
És működik, köszönömDe ha van rá egy magyarázatod az is érdekelne, mert eddig bárkol kerestem mindenhol ,-vel voltak írva volt
velizare, samujózsi: jogos, fejből írtam, mert átírtam a kódot, csak nem tetszett, mert azzal pont az argumentum adta "szabadságot buknám el
-
cousin333
addikt
válasz
kovisoft #2441 üzenetére
Igen, ebben igazad van. Az a probléma, hogy inkonzisztensen használja a változókat. Az adatbevitelnél ez szerepel:
m1=float(input("Gömbréteg feletti magasság (m1) : "))
m2=float(input("Gömbréteg alatti magasság (m2) : "))Ennek fényében az M számítási képlete megfelelő lenne:
m1=r-sqrt(r**2-q1**2) # Felső szelet magassága
m2=r-sqrt(r**2-q2**2) # Alsó szelet magassága
M=r-(m2+m1)Viszont az előtte lévő sorokban nem ezt az m1 és m2-t számolja ki, hanem a síkok origótól mért távolságát, amiből M valóban az általad javasolt módon jönne ki:
M = m2 - m1
-
cousin333
addikt
válasz
kovisoft #2438 üzenetére
A képlet, amit használ, szerintem jó, hiszen korrekt módon írja le az adatbevitelnél.
Én is tettem egy próbát a feladattal, bár más megközelítéssel: egyszerű osztályokba szerveztem az egyes alakzatokat. Ezt aztán lehet bővíteni rogyásig különböző trükkökkel, ellenőrzésekkel, összevonásokkal.
Nem szűnök csodálni továbbá, hogy milyen sok összetett és praktikus program és eszköz érhető el a neten. Például a fent említett próbálkozást Jupyter notebookban implementáltam, súgóként a képleteket is odaírva - természetesen LaTex formázással
... és mindezt simán feltettem a Google Colab platformra, így ti is láthatjátok, sőt, szerkeszthetitek is: [link]
How cool is that?
-
Janos46
tag
válasz
kovisoft #2436 üzenetére
Köszi a választ. Hogy tovább lép a gömbnél, erre már próbáltam többféle megoldást, de sajnos mostani tudásommal nem jutottam előbbre. Egyedüli megoldásnak a break-et gondoltam, de annak nem ismerem jelenlegi esetben a használatát.
Amennyiben a réteg magassága nincs megadva, úgy a felületét nem lehet kiszámítani. Viszont minden esetben a q sugár értékeket meg kell adni. Ezekből pitagorasz segítségével meg lehet határozni a két leeső gömbszelet magasságát. Ha azt kivonom a gömb sugarából, akkor megkapom a ömbréteg magasságát. Ezt én csak így tudtam kiszámítani. Ha van rá más mód, szívesen veszem, mint ahogy a többi kérdésemre is a válaszokat bárkitől (ez biztatás akart lenni).
Viszont most újra átgondolva feladatot, kérdésem az, hogy a gömbréteg vajon csak az ábrán látható esetben igaz? Vagy pedig ha egy teljes gömbnek csak az aljából és a tetejéből vágunk le egy kicsit, tehát a középső része is megmarad, az is gömbréteg? Mert ha igen, akkor a számítást másképpen kell megoldanom. Hmm?? -
Janos46
tag
válasz
kovisoft #2402 üzenetére
Köszi a választ, de sajnos azt már próbáltam és csak a verziószámot, helpet és pár egyéb infót ír ki.
Lenn egy másik kérdésem is. Ha egy print-el íratok ki adatokat, és akár 25 tabulátort is be kellene tenni, van-e rá parancs, hogy ugorjon a megfelelő pozícióba?
A #2391-es kérdésemre nem tudsz véletlenül jó választ? -
Siriusb
veterán
válasz
kovisoft #2352 üzenetére
Köszi, ma is tanultam egy alapdolgot, amit már hamarabb kellett volna megismerni.
@axioma,
Egyfelől ha van időm, szeretek körbejárni egy adott problémát és többféleképpen megoldani, különösen azért, mert nincsenek mély ismereteim a pythonról, s így egybekötöm az ismeretszerzéssel. Másrészt nem derogál sem ez, sem az. Akármennyire is furcsa, vagy érthetetlen, szeretném bővíteni az eszköztáramat a különféle megközelítésekkel. Azt hittem, a scandir egyszeri futásával + filterrel a legegyszerűbb elvégezni a feladatot, de mint kiderült tévedtem. Ám jött kovisoft, írt 2 mondatot és ezzel a két mondattal rengeteget segített.
Amúgy valóban csak kisebb, kvázi "hobbiprojectek" ezek, de általában igyekszem úgy gondolkozni, hogy az erőforrások gazdaságosan legyenek felhasználva, mégha ennek nincs is jelentősége. Az pedig az én mániám, hogy a kód legfőként minél egyszerűbb (ha nem is tömörebb), de jól olvasható, értelmezhető legyen.
Új hozzászólás Aktív témák
Hirdetés
- iPhone 15 Pro Max 256GB 90% Akku, gyári garanciás !
- Újszerű Acer Nitro V - ANV15 - 15.6"FHD 144Hz - i5-13420H - 16GB - 512GB - RTX 3050 - 2+ év garancia
- Microsoft Surface Go laptop 12,4" i5/8GB/128GB újszerű állapotban
- Samsung Galaxy Watch 6 Classic 47 mm fehér/ezüst + Spigen Modern Fit 316L fém szíj
- I7-7700K/32GB Ram/GTX1660 Super OC
- 13-14" Új és használt laptopok , üzletitől a gamerig , kedvező áron. Garanciával !
- Asus TUF Gaming F16 (2024) FX607JV Grey - 16" - és Lenovo Legion Slim 5 RYZEN 7 8845HS
- Akció! Újra Gamer EGEREK! Glorious , Endgamer XM1R , Nibio
- Prémium! Csere-Beszámítás! Számítógép PC Játékra! R5 5600X / RTX 4060 / 32Gb DDR4 / 1TB SSD
- Azonnali készpénzes félkonfig / félgép felvásárlás személyesen / csomagküldéssel korrekt áron
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest