Új hozzászólás Aktív témák
-
sztanozs
veterán
HTTP-nel termeszetes modon nem hasznalja, mivel a kommunikacio nincs titkositva, se alairva. Ezert nem is panaszkodik, hogy barmi baj lenne a certificate-tel.
Lattam egyebkent ilyen elcseszett szolgalatatast korabban (kb 20 eve), ahol a ceg igazgatoja demozta nekunk a ceg biztonsagos (mutual auth) weboldalat, es utana mellekesen hozzatette, hogy amugy o a sima HTTPs oldalt hasznalja, mert az 2 mp-el gyorsabban tolt be. No comment... -
sztanozs
veterán
Ha mutual authentication van a HTTPS-en (nem csak a szervert azonositja a kliens, hanem a klienst is azonositja a szerver), akkor szukseg van kliens oldali cert-re is.
-
tvamos
nagyúr
Azt hasznalnam, csak nem mukodik rendesen. Amikor belemaszok a konyvtarba, (hogy ne csak azr irogassa, hogy hiba, hanem azt is, hogy mi a baja,) akkor kiderul, hogy hulyesegeket valaszol, nem azt, amit kene.
De az a sejtesem, hogy hardveres lehet a problema... illetve user error. -
golfvariant
aktív tag
Kipróbáltam, de valamiért nem működött, pedig scrollozás közben megálltam, vissza is görgettem stb, aztán újra lefele. Mégsem jött össze, mindegy végülis sikerült megoldanom más módszerrel.
igaz nem használok fakeuseragent-et, vagy letöltött chromedriver.exe-t
Nincsenek világmegváltó terveim vele, csak sosem pythonoztam még, és célszerűnek láttam valami kézzelfogható projekttel indítani, mintsem sum = 1+2 szinttel indítani -
sztanozs
veterán
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)] -
justmemory
senior tag
Most hirtelen csak Androidon tudtam Termux alatt kipróbálni, ott hibát dob:
<Fault -32500: "RuntimeError: PyPI's XMLRPC API has been temporarily disabled due to unmanageable load and will be deprecated in the near future. See https://status.python.org/ for more information.">
-
eldvor
csendes tag
Elnézést:
#!/usr/bin/python
import sys, MySQLdb, Adafruit_DHT, datetime, time
#
pin = 17
#
sensor = Adafruit_DHT.DHT11
#
db = MySQLdb.connect(host='localhost',user='logger', passwd='*******', ,db='home')
#
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
dt = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
#
while True:
humidity is not None and humidity >= 0.0 and humidity <= 100.0 and temperature is not None and temperature > -100.0 and temperature < 150.0:
cur = db.cursor()
cur.execute("INSERT INTO TH(THdate, THtemperature, THhumidity) VALUES ('" + dt + "'," + str(temperature) + "," + str(humidity) + ")")
db.commit()
cur.close()
del cur
db.close()
time.sleep(300)
-
igazából mit spórolsz azon, ha nyitva tartod a kapcsolatot? időt. ha szükséged van arra a pár tized/századmásodpercre, amíg egy kapcsolat és egy session megnyitása és beállítása tart, akkor hagyd nyitva. minden más esetben csak problémát tud okozni, ha valamiért nyitva marad.
erről egyébként a legtöbb dba elég sokat tud neked mesélni, mindegyik találkozott már olyan programmal, ahol ez nem volt kezelve, és problémákat okozott db oldalon. -
ha sok művelet lesz, akkor úgyis saját függvényeket fogsz írni a hívások köré (már csak azért is, hogy a db-hibakódokat, üres eredménylistát lekezeld), aminek az elejére simán beépíted a kapcsolat vizsgálatát, és az arra érkező negatív válasz esetén a megnyitását, a végére meg a zárást, és akkor ezt el is felejtheted. kapcsolatnyitásokkal nem fogsz leddosolni egyetlen sql szervert sem (vagy ha igen, ahhoz szeretnék a dbanak külön gratulálni) viszont a nyitva hagyott kapcsolatok konkrétan elérhetetlenné tudják tenni az adatbázist.
-
így hívunk függvényt argumentum nélkül:
foo()
amit te csinálsz, azzal nem a függvényt hívod meg, hanem a függvény objektumát. ha def-fel vagy lambdával készítesz függvényt, akkor ezt a python megcsinálja neked.>>> def foo(): pass
...
>>> foo
<function foo at 0x106aafd70>hívd csak meg a five függvényed objektumát natúr, és valami hasonlót fogsz kapni. és persze a külső föggvényeid is erre az értékre futnak ilyenkor, nem pedig arra, amit a five() helyesen meghívva visszaadna.
és persze hibaüzenetet is azért nem kapsz az egyébként hibás five hívásodra, csak legfeljebb a külső függvényeidre, mert hiába van neki megadva, hogy mivel kell meghívni, nem a függvényt hívod meg, hanem az objektumát.
-
sztanozs
veterán
így próbáld:
def five(op=''):
if op != '': return eval(op)
return str(5)
def seven(op=''):
if op != '': return eval(str(7) + op)
return str(7)
def times(param):
return str('*' + str(param))
print(seven(times(five())))mod illetve még némi synthetic sugar:
def five(op=''):
if op != '': return eval(op)
return str(5)
def seven(op=''):
if op != '': return eval(str(7) + op)
return str(7)
def times(param):
return str('*' + str(param() if callable(param) else param))
print(seven(times(five())))
print(seven(times(five))) -
kovisoft
őstag
Egyrészt nem hívhatod meg argumentum nélkül, mert a definícióban fixen ott van az op argumentum. Másrészt az argumentum nélküli meghívásnál is kellenének a zárójelek, de az is hiányzik, ezért ez így nem függvényhívás, hanem a függvény objektum lekérése:
> five('')
'5'
> five
<function five at 0x7f3901b8ae18>
> five()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: five() missing 1 required positional argument: 'op' -
axioma
veterán
En egyfelekeppen, azon belul szabalyosan formazok, csak az ajanlasokbol nem mindent tartok be. A fix behuzast igen, de nem 4-gyel, hanem 2-vel. Valtozokat ertelmesen. De azt peldaul sose ertettem, miert jo a relacios jelek korul plusz space-eket hagyni... en tomenyebben irom, ebben a Python plane jo partner
[munkailag java-s vagyok, sokkal szoszatyarabb].
Termeszetesen, ahol kell, alkalmazkodom. Sot, szoftver karbantartaskor, bar nem vagyok rakenyszeritve, de ha a kod kozepebe kell beleirnom, akkor az ott aktualis stilust kovetem. Ha kulon osztaly vagy meretesebb fuggveny, akkor mar inkabb a sajatom. Ennek mar nem ront a minosegen, elottem is tobben es tobbfelekeppen irtak egyes reszeit... -
axioma
veterán
Igaz, hogy me'lyse'gben is ajanlott az embernek korlatoznia magat, de a 4 szokoz mint alap ajanlas nekem attol teszi nehezze olvasni, hogy erezhetoen egyre rovidebb sorokba kene beferni kommenttel egyutt (ha a sorhoz tartozik), ahogy egyre bentebbi szintrol van szo. A blokk beazonositasa meg azert mar nem olyan nagy problema ma mar, mint amikor a vi volt a prog.iras alapja...
-
adam0913
tag
Kicsit más irányba mentem el, és egyszerűsítettem :
import urllib2
from bs4 import BeautifulSoup
import csv
import os
out=open("proba.csv","rb")
data=csv.reader(out)
def make_soup(url):
thepage = urllib2.urlopen(url)
soupdata = BeautifulSoup(thepage, "html.parser")
return soupdata
maindatatable=""
soup = make_soup("https://www.mnb.hu/arfolyamok")
for record in soup.findAll('tr'):
datatable=""
for data in record.findAll('td'):
datatable=datatable+","+data.text
maindatatable = maindatatable + "\n" + datatable[1:]
header="Penznem,Devizanev,Egyseg,Penznem_forintban"
print maindatatable
file = open(os.path.expanduser("proba.csv"),"wb")
file.write(bytes(header, encoding="ascii", errors="ignore"))
file.write(bytes(maindatatable, encoding="ascii", errors="ignore"))Viszont ezt a hibaüzenetet adja vissza : "Traceback (most recent call last):
File "C:/Python27/megoldas3.py", line 27, in <module>
file.write(bytes(header, encoding="ascii", errors="ignore"))
TypeError: str() takes at most 1 argument (3 given)"Gondolom az utolsó soroknál lehet valami probléma, amikor csv-be szeretném kimenteni, mert ha printelem a maindata-t nagyon szépen kiadja azokat az adatokat, amikre szükségem van. Mit ronthattam el vele?
-
peter1998
tag
bash: rc.local: No such file or directory
May 4 19:17:07 localhost cron[485]: (CRON) INFO (pidfile fd = 3)
May 4 19:17:08 localhost cron[485]: (CRON) INFO (Running @reboot jobs)A crontab vonal az jónak látszik, sajnos nem fut a program. A fent látható log szerint pedig elindul. Van még valami ötleted?? Az operációs rendszer egy ARMBian.
Kezd ez a dolog itt offba átcsapni ?
-
justmemory
senior tag
Igen, ezért is tettem hozzá, hogy nem mindegy mire kell, mit "akar tudni a program". Ha egyszálú, akkor persze, semmi szükség rá, de ha párhuzamosan szeretnék egymástól eltérő dolgot lefuttatni különböző "várakozási időkkel", akkor lehet hasznos (pl. 15 percenként nézze meg az emailjeimet, és emellett óránként frissítse az időjárási adatokat, de egymástól függetlenül).
Az eredeti kérdés alapján nekem az jött le, hogy x*100 ms után mindenképp indítani kell...
-
cousin333
addikt
Én pont fordítva szoktam. Ha szembesülök egy problémával, eszembe jut, hogy hátha van rá beépített vagy 3rd party modul. És általában van is.
Ez mondjuk nem rossz gondolat: ide (vagy akár az 1. hsz-be) ki lehetne posztolni érdekes cikkeket, videókat honlapokat, ahol hasznos tudással lehet bővíteni az ismereteinket. Tehát nem kell minden Python cikk, csak ami tényleg jó és tartalmas. Ugyanezt kiegészíthetnénk modul-ajánlóval is.
-
cousin333
addikt
Én Mercurial-t használok. Folyamatosan fejlesztik, gyors, stabil megbízható és könnyen megtanulható. Van hozzá rendes GUI és Windows támogatás. Ez is elosztott rendszer, a BitBucket kínál hozzá is online repókat, de azt nem használom. A git-et nem ismerem, de kétlem, hogy egyszerűbben használható lenne.
Dokumentálni általában ott a Doxygen, bár Pythonhoz elvileg a Sphinx dukálna, de azt még sosem használtam.
Python tippeket meg a Youtube-on is találsz, van jónéhány PyCon rendezvény, amiben egy-egy modult mutatnak be. A részletekért meg úgyis a dokumentációt kell bújni.
-
Szenty
tag
Sajnos annál a magyar könyvnél nem fogsz találni jobbat.
Szerinted. Szerintem pedig találhat, például Mark Summerfieldtől Python 3 programozást. Jól struktúrált, érthető, és főleg nem elavult a Tanuljunk meg programozni Python nyelvenhez képest.
-
LógaGéza
veterán
Igazából adtál ezzel egy ötletet, kipróbáltam, és bejött - annyi a hátránya, hogy nem működik a Combo Box, és hardcoded a COM port, de működik.
26. sort írtam át erre:
self.ser.port = 'COM3'
Ez külön kóddal kilistázza az elérhető COM portokat, de sajnos arra nem jöttem rá hogy lehetne integrálni.
-
AeSDé Team
őstag
Köszi, próbálkoztam de valami nem stimmel.
Létre tudom hozni a StringIO objektumot, és a .write -al hozzáadom a szükséges adatot.
Ezután a .getvalue() beolvassa az adatokat, és minden stimmel.
A gond az hogy az ftplib .storelines funkciója nem getvalue, hanem .readline -al olvas, és valamilyen okból az üresen tér vissza. Nincs error, de a fájl amit a szerveren létrehozok, üres lesz.Kódrészlet röviden:
# FTP upload
import ftplib
import io
ftp = ftplib.FTP(SERVER_IP)
ftp.login(USER, PASSWORD)
myfile = io.StringIO()
myfile.write(CONTENT)
ftp.storlines("STOR " + NAME, myfile)
print (myfile.getvalue()) # Itt nincs gond, megvan az adat
print (myfile.readline()) # Ez üresen tér vissza -
sztanozs
veterán
vajon mit kezdesz egy ilyennel:
(lambda _, __, ___, ____, _____, ______, _______, ________:
getattr(
__import__(True.__class__.__name__[_] + [].__class__.__name__[__]),
().__class__.__eq__.__class__.__name__[:__] +
().__iter__().__class__.__name__[_____:________]
)(
_, (lambda _, __, ___: _(_, __, ___))(
lambda _, __, ___:
chr(___ % __) + _(_, __, ___ // __) if ___ else
(lambda: _).func_code.co_lnotab,
_ << ________,
(((_____ << ____) + _) << ((___ << _____) - ___)) + (((((___ << __)
- _) << ___) + _) << ((_____ << ____) + (_ << _))) + (((_______ <<
__) - _) << (((((_ << ___) + _)) << ___) + (_ << _))) + (((_______
<< ___) + _) << ((_ << ______) + _)) + (((_______ << ____) - _) <<
((_______ << ___))) + (((_ << ____) - _) << ((((___ << __) + _) <<
__) - _)) - (_______ << ((((___ << __) - _) << __) + _)) + (_______
<< (((((_ << ___) + _)) << __))) - ((((((_ << ___) + _)) << __) +
_) << ((((___ << __) + _) << _))) + (((_______ << __) - _) <<
(((((_ << ___) + _)) << _))) + (((___ << ___) + _) << ((_____ <<
_))) + (_____ << ______) + (_ << ___)
)
)
)(
*(lambda _, __, ___: _(_, __, ___))(
(lambda _, __, ___:
[__(___[(lambda: _).func_code.co_nlocals])] +
_(_, __, ___[(lambda _: _).func_code.co_nlocals:]) if ___ else []
),
lambda _: _.func_code.co_argcount,
(
lambda _: _,
lambda _, __: _,
lambda _, __, ___: _,
lambda _, __, ___, ____: _,
lambda _, __, ___, ____, _____: _,
lambda _, __, ___, ____, _____, ______: _,
lambda _, __, ___, ____, _____, ______, _______: _,
lambda _, __, ___, ____, _____, ______, _______, ________: _
)
)
) -
adamch4
tag
rendezett, pontosan ilyen formában (a pont-tizedesjel utáni számokból levettem egy kicsit, h ne legyen olyan hosszú):
23.65,49.16,0 23.65,49.23,0 22.53,48.28,0szóval egy tömbön belül van egy vessző, két tömb között pedig egy szóköz. a 40-es számoknál a számok végén ,0 szerepel, de az elhagyható.
-
tvamos
nagyúr
Huhh... de soka vettem eszre, hogy valaszoltal.
def get_image0():
retval, im = camera0.read()
print retval
return im
def get_image1():
retval, im = camera1.read()
print retval
return im
camera_capture0 = get_image0()
camera_capture1 = get_image1()Szoval, en ugy latom, hogy ez egymas utan csinalja a kepeket, de en egyszerre szeretnem. Csak nem tudom, hogy kell.
-
doberman
senior tag
Köszönöm!!!
a linkelt configobj telepítése után lefutott a setup.py !
sőt úgy ahogy kell kérdez-felelek útján már "tudatosult" a földrajzi koordináta, hely, magasság...viszont. mert mindig van ilyen....
mivel a fejlesztő redhat,debian,suse,bsd támogatást ad "csak", így pl az indító szkiptet is kézzel kell a helyére tenni.
mivel a legközelebb az openwrthez a debian áll talán a legközelebb azzal próbálkoztam - abban viszont a 47. sorban bizony egy nemlétező könyvtár nemlétező filére hivatkozik... persze nem indul el ( /lib/init/vars.sh hiányzik...) na itt még mókólni kell egy keveset.... 8kb-nyit.
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functionsmég az is az eszembe jutott, hogy 1xű-en átmásolom a debiános gépről a hiányzó /könyvtár/file stuktúrát...
na majd meglátjuk.
mégegyszer köszönöm a segítséget! -
adamch4
tag
Nagyszerű, köszönöm!
Ez nekem is eszembe jutott, de szerencsére minden letöltött állomány '.TIF' kiterjesztésű, így ha nem babráljuk, nincs gond, ha meg mégis TC-ben egy csoportos átnevezéssel oldanám meg a problémát. De ez így mégis kiforrottabb megoldás
Eddig, ha pl. átneveztem 'valami.TIF'-et > 'valami.tif'-re, úgy azt kihagyta, vagy ha a scriptben 'tif' lenne, miközben a kiterjesztés 'TIF', akkor szintén nem vágna ki semmit. Ezzel a javítással már ez sem lesz gond
Még azt szeretném megoldani, hogy a kimeneti mappa más legyen, mert amit megadtam, azzal nem működik. -
alikov
csendes tag
Eltávolítottam a jeleket: <>, de így se jó
>>> import stat.py
Traceback <most recent call last>:
File "<stdin>”, line 1, in <module>
ImportError: No module named py
>>>Majd stat.py fájlt átneveztem st.py fájllá, így már meglett a st.pyc fájl!
Így is kiírt egy hibaüzentet, kicsit kisebb lett a mérete.
Az eredeti pyc mérete: 31791 bájt,
Az újra alakított pyc: 31756 bájt
Alakul, de jobb lenne az eredeti méretet elérni? nem tudom az a pár bájt számít-e?(Megjegyzem még az eredeti fájlt próbálgattam újra pyc fájllá alakítani)
A decompiler st.pyc_dis fájl mérete: 44565 bájt, ennek az első két sora:
# Embedded file name: src/stat.py
import BigWorldHibaüzenet:
>>> import st.py
Traceback <most recent call last>:
File "<stdin>”, line 1, in <module>
File "<st.py>”, line 2, in <module>
Import BigWord
ImportError: No module named BigWord
>>> -
cousin333
addikt
Igen, a Spyder egy jó kompromisszumnak tűnik. Kellően sokrétű, mégis egyszerűen használható marad, ráadásul a Python a célnyelv (ellenben pl. az Eclipse-el). És persze ingyenes.
Egy másik érdekes IDE a PyCharm. Ez egy kereskedelmi szoftver, nem csak Pythonhoz, de van ingyenes Community Edition is, ami a mi szempontunkból teljes értékűnek tekinthető.
Ha pedig szkript és mondjuk adatfeldolgozás, akkor egyértelműen IPython Notebook.
Az androidos kérdésedhez nem tudok hozzászólni.
-
axioma
veterán
A linuxot csak ugy mondtam hogy aka'r az is, alapbol win-en vagyok.
Hm, azt hittem hogy minimalis szukseget mondok azzal hogy debugDe vegulis kivalthato sout-tal (ize, itt nem ugy hivjak). Arra akartam csak utalni, hogy ezek nem sokobjektumos, nem parhuzamos, nem felhaszn.feluletes, nem webes programok, hanem egyszeru, akarmilyen altalanos celu nyelvben megoldhato feladatok, csak a kompaktsag es az osszetett adattipusok egyszeru letrehozasa es hasznalata miatt (azok surun kellenek, pont a lista es a map) lenne python.
Kozben rajottem, hogy guglizhattam is volna, talaltam me'g portable csomagokat is, elinditok vagy akar telepitek parat, aztan kitalalom. Azert koszi az infot. -
Noddy
senior tag
Nekem az is új, hogy hogyan kérünk be inputot, for ciklus, if... ilyesmi. Persze ha az ember ezt már mindet tudja, akkor nem sok újat mondanak.
Néztem a tkinter dolgot és a ttk csomaggal már elég barátságos. Egyelőre próbálok ebbe a vonalba elmenni, meglátom meddig jutok. Nagyon jó, hogy beépített és nem kell külön egyéb csomagokat telepíteni mint Qt és GTK esetében.
-
Noddy
senior tag
Egyelőre 2.7-es tutoriálokat nézek, a full circle magazin pythonos leckéket és az itt is említett G. Swinnen könyvet néztem ki (előbb legyek túl az elsőn
). Bár ahogy fórumokat is nézek valószínűleg a 3.x python lesz a jövőben a befutó, legalábbis úgy tünik hogy a fejlesztők nem akarják nagyon a 2.x-es vonalat tovább vinni. De ahogy most eljutottam a gui-ig itt nem akarok mindent össze vissza, hanem az alap feladatokat is csak egy rendszerben szeretném megtanulni. (pl. akciók lekezelése, méretezések, osztályok felépítése).
Most megnéztem a tkinter-t és elég egyszerűnek tűnik még az én laikus szememnek is, de kérdés mennyi lehetőség rejlik bele és nem-e futok bele valamibe amit nem lehet alatta megcsinálni (adatbázis kezelést szeretnék csinálni, ha eljutok odáig)
-
Mindegyik fájdalmas, én kb. erre jutottam. Persze lehet vele tökölni, de meglátásom szerint RAD nem fog összejönni. Én emiatt várhatóan nyelvet váltok a Pi-n, és a GUI-s alkalmazásokat Lazarusban csinálom meg. Az elvileg teljes környezetet kínál Raspberryre, de ez már nem itteni téma.
-
olivera88
veterán
Nem tudom mit nem értettél rajta nem tudom. Van 11 időpont és arra 11 fájl, és azt szerettem volna megoldani h ne kelljen minden fájl nevét külön beírni a terminálba hanem egyszerre lebírjam futtatni mind a 11 et.
axioma
Szóval akkor ezt kell betenni a fájlba a mit leírtál? Ja semmi, nem figyeltem,
külön fájlt kell létrehozni.
Közbe találtam rá megoldást.
-
axioma
veterán
Bocs, en anno win 3.1 helyett karakteres uzemmodu linuxot hasznaltam nettel a koleszszobaban, ami akkor nagy szo volt, de ma mar nem szeretik az emberek a karaktereket...
Letrehozol egy tokegyszeru szovegfile-t, benne:
#!/usr/bin/bash
<elso python script-ed neve>
<masodik script>
...
EOF
Ennek ha pyscriptauto a neve, akkor
chmod 755 pyscriptauto
parancsot futtasd, es utana ./pyscriptauto (ha jol vagy konfigolva, akkor a ./ elmaradhat, de soxor az akt. kv.t nincs a keresesi utvonalon...)Teszem hozza gyorsan, 10+ eve irtam ilyet utoljara, ugyhgoy csak azert valaszoltam mert senki mas, es siman tevedhetek.
-
olivera88
veterán
Na beírtam az első sor elé amit írtál. Most már lefut enterrel.
Köszi. A jogosultságot nem tudtam úgy ellenőrizni ahogy írtad.
Azt nem lehet megoldani h egymás után lefuttatni automatikusan? Akkor még jobb lenne, ha megadom h miket futtasson le és azokat lefuttatja egymás után. -
sztanozs
veterán
Raw packettel oldható csak meg - pythonból a sztenderd UDP csomaggal nem tudod közvetlenül beállíani a forrás portot.
Bár ahogy nézem bind-dal is mennie kellene (ha nem low portot - <1024 - állítasz be)...
Új hozzászólás Aktív témák
Hirdetés
- Csere-Beszámítás! AMD Ryzen 5 9600X Processzor!
- Xiaomi Redmi Note 13 256GB, Kártyafüggetlen, 1 Év Garanciával
- LG 48C2 - 48" OLED EVO - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - A9 Gen5 CPU
- ÁRGARANCIA! Épített KomPhone i5 10600KF 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- MacBook felváráslás!! MacBook, MacBook Air, MacBook Pro
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest