Új hozzászólás Aktív témák
-
nagyúr
válasz kovisoft #3036 üzenetére
valami kódolva van, valamivel, valahogyan. hogy mi, és mivel, az nem lényeges, találd ki. ne akadjunk már fenn minden apróságon, most értitek. a lényeg, hogy php legyen belőle. ez nagyon fontos.
[ Szerkesztve ]
Tudod, mit jelent az, hogy nemezis? Az érintett, erősebb fél kinyilatkoztatása a méltó büntetés mértékét illetően. Az érintett fél jelen esetben egy szadista állat... én.
-
lanszelot
addikt
válasz kovisoft #3051 üzenetére
Sajnos nem sikerül.
nem tudom mit kell beírni parancssorba
c: -> Python39 -> python.exe ezt indítottam másodszorbeírtam a kódot is a pythonba, de file not found
beírtam a zárójelbe elérési úttal is, de file not found
leírná vki pontosan mit kell beírnom a parancssorba?[ Szerkesztve ]
-
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 -
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'] -
-
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 #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']
[ Szerkesztve ]
-
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?
-
-
-
-
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).
[ Szerkesztve ]
https://www.coreinfinity.tech
-
-
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.LG Velvet 5G Android 11 - Windows 10 Pro x64 & Debian 11 Bullseye - WoWS unsinkable_sam_
-
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 #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.LG Velvet 5G Android 11 - Windows 10 Pro x64 & Debian 11 Bullseye - WoWS unsinkable_sam_
-
-
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? -
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
[ Szerkesztve ]
-
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ő.Eladó Lego: 42139 All terrain vehicle
-
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')
>>> -
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 #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?
-
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 -
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]
-
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 #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.
[ Szerkesztve ]
-
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 ...
[ Szerkesztve ]
Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews
Új hozzászólás Aktív témák
- Olasz autó topik (Fiat, Lancia, Alfa)
- Autós topik
- AMD CPU-k jövője - amit tudni vélünk
- sziku69: Fűzzük össze a szavakat :)
- Bambu Lab X1/X1C, P1P-P1S és A1 mini tulajok
- A fociról könnyedén, egy baráti társaságban
- Diablo IV
- Motorolaj és szűrő topik
- Skoda, VW, Audi, Seat topik
- Forza sorozat (Horizon/Motorsport)
- További aktív témák...
- XFX GTS RX 580 8GB OC - eladó!
- Samsung Galaxy Watch 4 Classic 46mm, E-SIM, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy S21+ 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Beats Studio 3 Wireless /// Makulátlan Állapot // Számla + 6 Hónap Garancia
- 1More ComfoBuds Pro Vezeték nélküli fejhallgató ZAJSZŰRÉSSEL /// ÚJ // Számla + garancia