Új hozzászólás Aktív témák
-
válasz
Hege1234
#3144
üzenetére
beszúrást nem tud, ahogy a többiek is írták:
- file megnyit olvsásra, beolvas sztringbe, bezár
- file megnyit írásra, beleírod az elejét, visszaírod a beolvasottat, bezár
https://stackoverflow.com/questions/4454298/prepend-a-line-to-an-existing-file-in-pythonAmúgy még mindig tartom magam az előző véleményemhez - egyáltalán nem bántásból -, de ha olyan kérdések merülnek fel, hogy miért nem ír ki valmit, amikor nem rakod bele print-be vagy write-ba a változót, akkor még csiszolj kicsit az alapokon.
-
-
válasz
Hege1234
#3116
üzenetére
Igen, ahogy a kolléga is írja a visszaadott jon egy lista [ ], amiben dictionary-k vannak { }
A listán végig-iterálva szépen meg tudod nézni, hogy mi van bennük.Amúgy mivel az elküldött data is két elemet tartalmaz, így láthatóan erre a két elemre kapsz választ a response-ban. Szerintem, ha a kérésben megadsz "id":valami_egyedi_szám mezőt is, akkor a válaszokat ehhez hozzá tudod majd kötni.
-
válasz
Hege1234
#3114
üzenetére
Hogyan került bele a resp-be a result? az nem látszik a kódból...
mondjuk urllib helyett requests modult használnék:import json
import base64
import requests
credentials = b'kodi:kodi'
encoded_credentials = base64.b64encode(credentials)
authorization = b'Basic ' + encoded_credentials
headers = { 'Content-Type': 'application/json', 'Authorization': authorization }
url = 'http://192.168.1.10:8080/jsonrpc?Base'
data = [
{"jsonrpc":"2.0","method":"Player.GetProperties","params":[1,["time"]],"id":17},
{"jsonrpc":"2.0","method":"Player.GetItem","params":[1,["file"]],"id":18}]
response = requests.post(url, headers=headers, data=json.dumps(data))
# vagy
# response = requests.post(url, headers=headers, json=data)
result = response.json()
print(result) -
válasz
Hege1234
#3103
üzenetére
Hogy néz ki a save.txt?
import requests
import os
from pynput.keyboard import Key, Controller as K
file = open("c:\kodi\save.txt")
lines = file.readlines()
line = lines[1]
os.startfile("c:\Program Files\Kodi2\kodi.exe")
time.sleep(2)
K().type(line+' ')
file = open("c:\kodi\save.txt")
lines2 = file.readlines()
url = lines2[0]
headers = { 'Content-Type': 'application/json' }
json = {"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"file": url}}}
requests.post('http://kodi:kodi@192.168.1.10:8080/jsonrpc?Base', headers= headers, data= str(json))És ez a rész minek kell?
K().type(line+' ')Amúgy a request-es rész csak akkor működik, ha engedélyezed a kodiban a http-n keresztüli távoli vezérlést.
-
Dekorátorban könnyű megvalósítani olyan dolgokat, amiket függvényen belül plusz hívásokkal tudnál csak megoldani. Ráadásul szebben újrahasználható, mintha a függvényen belül helyeznénk el, pl.:
class User:
...
def authenticate(self, username, password):
...
#bejelentkezik
@is_authenticated
def change_password(self):
...
#jelszót vált
@is_authenticated
@is_admin
def change_password_for_others(self, user):
...
#jelszót vált másik usernélvagy pl logolási szinteket adhatunk meg fv hívásoknak és a konfigurációban beállított logolási szintnek megfelelően lesz (vagy nem lesz) logolva az adott esemény:
class User:
...
@log(loglevel=1)
def authenticate(self, username, password):
...
#bejelentkezik
@log(loglevel=1)
@is_authenticated
def change_password(self):
...
#jelszót vált
@log(loglevel=2)
@is_authenticated
@is_admin
def change_password_for_others(self, user):
...
#jelszót vált másik usernél -
Dekorátor pl a input függvény felülírására:
Az első függvény (mock-olt) nem fog bekérni semmit a konzolon, fixen megkapja a test input lista sorait, de a második igen.from unittest import mock
from typing import Callable
test_inputs = [
"line 1",
"line 2",
"line 3"]
@mock.patch('builtins.input', side_effect=test_inputs)
def letme_test_it(input: Callable) -> None:
i1, i2, i3 = input(), input(), input()
print(i1, i2, i3)
def letme_provide_input():
i1, i2, i3 = input(), input(), input()
print(i1, i2, i3)
if __name__ == '__main__':
letme_test_it()
letme_provide_input() -
A dekorátorok megváltoztatják a dekorált függvény működését (gyakorlatilag becsomagolják egy másik függvénybe, ami
- képes megváltoztatni a dekorált függvény működését, az ott meghívott függvények vagy a változók átalakításával (felüldefiniálásával)
- ellenőrizheti vagy logolhatja az átadott vagy visszaadott argumentumokat -
válasz
Longeye
#3008
üzenetére
Osztály jól jön akkor, ha biztosítani akarod, hogy
- az adott tulajdonságok meglegyenek (egy dict esetében ez koránt sincs így);
- később mégis akarsz rajtuk műveleteket végezni;
- típus ellenőrzést akarsz végrehajtani (pl egy listában, ahol nem garantálható, hogy minden elem megfelelő típusú)Itt van néhány példa a struktúra alapú működéshez: [link] (persze a háttérben mindenhol új osztályok jönnek létre)
-
válasz
olivera88
#3007
üzenetére
Neked kell leprogramozni a progress bart, python csak futtatókörnyezet, magától nem jelenít meg semmit:
https://stackoverflow.com/questions/2028517/python-urllib2-progress-hook
vagy
https://stackoverflow.com/questions/41106599/python-3-5-urllib-request-urlopen-progress-bar-available -
válasz
olivera88
#3003
üzenetére
f-stringet kell használni:
today = datetime.datetime.now().strftime('%Y-%m-%d')
url = f'http://dcpc-nwp.meteo.fr/services/PS_GetCache_DCPCPreviNum?token=__5yLVTdr-sGeHoPitnFc7TZ6MhBcJxuSsoZp6y0leVHU__&model=ARPEGE&grid=0.1&package=IP1&time=13H24H&referencetime={today}T00:00:00Z'vagy egyben:
url = f'http://dcpc-nwp.meteo.fr/services/PS_GetCache_DCPCPreviNum?token=__5yLVTdr-sGeHoPitnFc7TZ6MhBcJxuSsoZp6y0leVHU__&model=ARPEGE&grid=0.1&package=IP1&time=13H24H&referencetime={datetime.datetime.now().strftime("%Y-%m-%d")}T00:00:00Z'ja és
import datetimekell a kód elejére, hogy működjön... -
válasz
garga pista
#2988
üzenetére
3.9 még lehet túl friss neki, de amúgy passz.
az is lehet hogy ezt a formátumot már nem támogatja a szkript. -
Igazából csak meg kellene nézni hogy hívja meg a logon-t és nem vacakolni az oldal parszolgatásával :/
-
akarmi[bB]{3}
mi akar a fenti lenni, ez?akarmibbb
akarmibbB
akarmibBb
akarmibBB
akarmiBbb
akarmiBbB
akarmiBBb
akarmiBBBSzerintem erre nincs általános megoldás, de egy fenti ilyenre használható a product függvény az itertools modulban:
import itertools
[f'akarmi{"".join(c)}' for c in itertools.product('bB', repeat=3)] -
válasz
mylastage
#2924
üzenetére
Pascalban az int változó sose vett fel tört értéket. Szerintem az emlékeid ködösítik a múltat. Persze ettől függetlenül a Real így működött, de az már a régmúlt.
Ráadásul ez nem egy python 'tulajdonság' igazából, az utóbbi időben (nem 25 évvel ezelőtt) már ez (banker's round) a sztenderd, azaz a felet mindig a közelebbi páros számhoz kell kerekíteni. Ez egy komolyabb (statisztikai) problémát old meg, mivel a 0.5 mindig felfelé kerekítése mérhető mértékben eltolja a kerekített számok eloszlását.
What’s New In Python 3.0:
The round() function rounding strategy and return type have changed. Exact halfway cases are now rounded to the nearest even result instead of away from zero. (For example, round(2.5) now returns 2 rather than 3.)
For the built-in types supporting round(), values are rounded to the closest multiple of 10 to the power minus n; if two multiples are equally close, rounding is done toward the even choice.
+
Python 3's way (called "round half to even" or "banker's rounding") is considered the standard rounding method these days, though some language implementations aren't on the bus yet.
The simple "always round 0.5 up" technique results in a slight bias toward the higher number. With large numbers of calculations, this can be significant. The Python 3.0 approach eliminates this issue. -
válasz
mylastage
#2918
üzenetére
Ez nem a python hibája, ez egy általános informatikai probléma, ami szinte az összes programozási nyelvet érinti. Értem, hogy laikus fejjel ez az egyik legnehezebben feldolgozható dolog, de ennek az a fő oka, hogy nem tudod, hogyan működik a számítógép (pontosabban az ALU) valójában.
-
Azért "fagy le", mert a KeepAlive függvény nem tér vissza, így a threading.Thread várhat az örökkévalóságig, hogy megkapja a callable object-et. máshol meg azért fut hibára, mert a meghívott függvény nem callable object-tel tér vissza (mert van olyan helyzet, ahol egy szelektor függvénnyel választod ki, hogy melyik függvény referenciáját add vissza - pl os-specifikus függvények esetében).
-
Internetről:
Many internet service providers (ISPs) block traffic on port 0 — both incoming and outgoing messages — to guard against these exploits.Egyébként elképzelhető, hogy bizonyos OS-ek sem routolnak tcp/0 vagy udp/0-ra...
Egyébként, ha kifejezetten egy 0-s porton hallgató szervízt kereső szkennert szeretnél írni, arra a python szvsz nem lesz a megfelelő megoldás.
-
válasz
Siriusb
#2588
üzenetére
Ha csak ellenőrző szám kell, akkor itt az MNB rendelet ami magyarul leírja, hogy kell számolni a számlaszámból: https://www.mnb.hu/letoltes/iban-ellenorzoszam-hu.pdf
8. számjegy és 16. vagy 24. számjegy kiszámítása: 2009/18. MNB Rendelet 1 függelék 1/c:
c) az ellenőrző számok az előttük álló számjegyek ellenőrzésére szolgálnak, melyeket a következő algoritmus szerint kell képezni: külön az 1-7., valamint külön a 9-15. vagy 9-23. számjegyeket helyi értékük csökkenő sorrendjében meg kell szorozni a "9, 7, 3, 1 … 9, 7, 3, 1" számokkal, a szorzatokat össze kell adni, és az eredmény egyes helyi értékén lévő számot ki kell vonni 10-ből. A különbség az ellenőrző szám. (Ha a különbség "10", az ellenőrző szám értéke "0".) -
válasz
Siriusb
#2588
üzenetére
https://www.iban.com/calculation-api
BTW melyik bankban nem 7 számjegy a bank code?
Mert az MNB rendelet alapján így néz ki az első 8:
3 karakter - bank kód
4 karakter - fiók azonosító
1 karakter - ellenőrző-összeg
https://www.mnb.hu/en/payments/mnb-as-payment-authority/routing-table -
-
válasz
samujózsi
#2554
üzenetére
Pont ezért nincs is relevanciája ennek a kérdésnek itt. Sem a téma nem stimmel, sem a nyelv. Próbáld meg valamelyik általános vagy célirányos topicban:
https://logout.hu/tema/programozas_forum/friss.html
https://logout.hu/tema/c_programozas_2/friss.html
https://logout.hu/tema/arduino/friss.html -
Ahogy axioma is írja a pycharm (de egyéb intellisense sem) tudja egykönnyen megmondani, hogy milyen típusúak a változóid. 3.5-től van type hint, ha beállítod a type hint-et a változóra, akkor már könnybb dolga van az intellisense-nek.
Azt mondjuk nem tudom, hogy a pycharm milyen mélységig támogatja, én pl VSC-ben fejlesztek, ott egész jó az intellisense. -
válasz
dangerzone
#2392
üzenetére
codewars.com - itt vannak megoldható feladatok, ha végképp elakadsz valamivel, akkor megtudod nézni mások megoldásait.
-
válasz
cousin333
#2385
üzenetére
Hozzátenném:
Raadasul szinte minden konyv azt hangsulyozza, hogyPythonbanadatbázisban az adatmegjelenites sorrendje bizonytalan, kulonbozo lekerdezeseknel kulonbozo sorrendben adja vissza az adatokat, ami szamomra erthetetlen.
Amúgy korábban (Java List<T>) objektumra én is olvastam ilyet (igaz nem könyvben, hanem fórumban, hogy a listaelemek sorrendje nem megbízható).
Általánosságban egyébként minden index nélküli iteratív típusra igaz ez (nem kötelezően, ez inkább implementáció-függő), de pl a python set/tuple pont nem ilyen. -
-
válasz
Whysperer
#2375
üzenetére
Pythonból (nagyobb lélegzetű, kezdőknek) nekem ezek tűnnek szimpatikusnak:
Complete Python Bootcamp: Go from zero to hero in Python 3 (24 óra)
Automate the Boring Stuff with Python Programming (9 óra)
The Python Bible™ | Everything You Need to Program in Python (9 óra)
The Modern Python 3 Bootcamp (30 óra)
The Complete Python Course | Learn Python by Doing (30 óra)Persze, mivel a Python for Maya codebase csak Python 2 alapú (2.6 - 2.7-et támogat), így a fenti tréningek olyan dolgokat is megtanítanak (ahogy néztem az oktatási anyag főleg 3.5 - 3.7 verziókra épül), amelyek máshogy működnek 2.x alatt (illetve nem is léteznek).
-
válasz
Whysperer
#2373
üzenetére
Szvsz udemy-n nagyon jó fizetős oktatóanyagok vannak angolul. Mivel eddig Londonban dolgoztál, gondolom az angol nem lesz akadály.
Elsőre ezt találtam:
Python For Maya: Artist Friendly Programming - 77 tananyag, 8 óra
Itt vannak a tananyaghoz ingyenesen elérhető mintafeladatok:
https://github.com/dgovil/PythonForMayaSamples -
válasz
sztanozs
#2369
üzenetére
szvsz numpy array kell neked (csak arra kell figyelni, hogy az üres cellákat is be kell vinni, nem lehet olyan mátrix, amiben a sorok hossza nem egyenlő).
Feltöltés után soronként megnézed, hogy melyik sorban van A és B is, ezután transpose, és simán újra soronként vizsgálni (ami korábban oszlop volt).
Illetve ez is jó lehet transpose-ra: https://stackoverflow.com/a/38466687/8154543
-
kezdosql-től szeretettel

Szia,
sajnos valamiert nem tudok a pythonos listara irni, csak latom, te irtal oda utoljara, tovabbitanad a nevemben ezt a kerdest?Udv,
adott egy nagy tablazat, kb. 600 sor es 200 oszlop.
A feladat az, hogy ki kell szurni, hogy mely cellakban van A vagy B adat, majd elemzest csinalni, hogy mely sor-oszlop kombinaciokban koncentralodnak.
Egy gyors elemzest csinalva A-bol kb. 6.500 B-bol kb. 3 ezer cellaban van adat, mig a soroknal es oszlopoknal a maximalis szam 50 es 30 kozul mozog.
Kimentettem a tablazatot csv fajlba, arra gondolok, pythonban tuple-t kellene ehhez hasznalni, mert annal kizart az adatok veletlen felulirasa, de eleg keves utasitas van tuplehoz, igy orulnek minden tippnek, merre induljak el.
Elore is koszonok minden segitseget -
válasz
Janos46
#2357
üzenetére
Ó istenem - el van b*va ez a kódszerkesztő...
from tkinter import *def osszead():zvalue.set(xvalue.get() + yvalue.get())ablak1 = Tk()ablak1.title("Alapműveletek")label1 = Label(ablak1, text="Ez csak tanulgatás!", width=25, fg="red").pack()xvalue = IntVar()mezo1 = Entry(ablak1, textvariable=xvalue).pack()yvalue = IntVar()mezo2 = Entry(ablak1, textvariable=yvalue).pack()zvalue = IntVar()mezo3 = Entry(ablak1, textvariable=zvalue).pack()gomb1 = Button(ablak1, text='Összeadás +', command=osszead).pack()gomb2 = Button(ablak1, text='Kilépés', command = ablak1.destroy).pack()ablak1.mainloop() -
válasz
Siriusb
#2349
üzenetére
Berakod az egészet egy függvénybe és átadod neki a fájlnevet:
def legujabbfajl(lista, szuro):
szurtlista = filter(lambda x: szuro in x.name, lista)
legujabb = max(szurtlista, key=lambda x: x.stat().st_ctime)
legujabbfajl = legujabb.path
with os.scandir(BASE_PATH) as files:
afajl = legulabbfajl(files, 'aaa')
bfajl = legujabbfajl(files, 'bbb')
-
btw, jön az értékadás operátor a py 3.8-ba: https://www.python.org/dev/peps/pep-0572/
-
vagy inkább:
folder = "/"
for entry in os.listdir(folder):
entry = os.path.join(folder, entry)
if os.path.isfile(entry):
print ("File: " + entry )
elif os.path.isdir(entry):
print ("Directory: " + entry )
else:
print ("Whatever: " + entry )Érdekes, ez nem működik folderekre...
Csak bent marad egy felesleges konkatenáció... -
válasz
harusakura1
#2338
üzenetére
Milyen kilátások vannak:
1) akár évekig is eljátszogathasz tesztautomatizmus fejlesztőként.
2) ha közben tanulgatsz valami mást (pl ML), akkor idővel dobbantani tudsz abba az irányba és ott lesz még néhány jól fizetett éved.
3) ha közben elkezdesz valami más hype-olt nyelvet tanulni, akkor tudsz majd oda váltani, de vsz csak junior vagy intermediate állásba.
4) ha végül megunod a fejlesztést, akkor elmész tanácsadás/sales/management irányba. -
válasz
Janos46
#2329
üzenetére
mert nem a honapot ellenőrzöd, hanem hogy mikor lesz több pénzed, mint
10000000
Helyesen:
def kiszamit():
# eval kifejezetten kerülendő, komoly biztonsági kockázat lehet
penz = int(mezo1.get())
honap = 0
while (honap < 12):
# értékadásnál a rövid furmula átláthatóbb
penz *= 1.02
honap += 1
mezo2.delete(0,END)
# fornat string használata ajánlott inkább
#mezo2.insert(0,str(honap)+' honap mulva felvehetsz: '+str(round(penz,2))+' Ft-ot')
mezo2.insert(0,'{0} hónap múlva felvehetsz: {1:0.2f} Ft-ot'.format(honap, penz))
Új hozzászólás Aktív témák
- Gumi és felni topik
- Assetto Corsa Rally
- Eredeti játékok OFF topik
- Spórolós topik
- A cégvezetők látják az AI költségeit, csak azt nem hogyan lesz ebből haszon
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Mikrotik routerek
- Tőzsde és gazdaság
- PlayStation 5
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- További aktív témák...
- DDR 4 & DDR 5 RAM FELVÁSÁRLÁS! Azonnal! NAGY MENNYISÉGBEN! HÁZHOZ IS TUDOK MENNI!
- ifi Audio Zen Blue V2 DAC
- ÚJ MSI Katana 15 HX - 15.6" QHD 165Hz - i7-14650HX - 16GB - 1TB - RTX 5060 - Win11 - 3 év gari - HUN
- DELL Latitude 3380,13.3",HD,i3-6006U,8GB DDR4,128GB SSD,WIN10
- Garanciális Lenovo Legion Pro 5 // AMD Ryzen 9 8945HX // 32GB RAM // 2TB SSD // RTX 5060
- HIBÁTLAN iPhone 12 Pro Max 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS4520
- szinteÚJ! Microsoft Surface Laptop 5 13.5" i5-1245U 16GB 512GB Alcantara 1év garancia
- iPhone 14 Pro 128GB 100% (3Hónap Garancia) - AKCIÓ
- HP EliteBook 855 G7 15,6" Ryzen 5 PRO 4650U, 16GB RAM, 256GB SSD, jó akku, számla, 6 hó gar
- Gamer PC-Számítógép! Csere-Beszámítás! I3 10100F / GTX 1660Ti / 16GB DDR4 / 512 Nvme SSD
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




