Hirdetés
- Feháborodott az Apple, a Meta az iPhone-felhasználók üzeneteit akarja olvasgatni
- A luxusmárkáknak kell a bitcoin, az USA jegybankjának nem
- Letiltja az USA a politikusokat a telefonhívásokról és szöveges üzenetekről
- Nagy áttörés jön a napelemek piacán, nem kell annyi hely a paneleknek
- Belenyúlt az USA az Epic Games igazgatótanácsába, nyomoz az NVIDIA
Új hozzászólás Aktív témák
-
justmemory
senior tag
válasz GreenIT #1699 üzenetére
ööö... néhány google találat...
még a nokia n900-as telefonomon (2009-es!) is csont nélkül megy 2.5-ös pythonnal (nyilván megfelelő mysql verzióval)[ Szerkesztve ]
--- Imprisoned, inside this mind... --- Joined at the soul with a pair of headphones ---
-
GreenIT
tag
Tovabbitok egy kerdest, hatha tudjatok a valaszt:
"A tanarom azt mondta, hogy a php-mysql mar a multe, a python a jovo, de egyetlen python programozasrol szolo konyvben se talaltam egy szot se mysql-rol, sot adatbaziskezelesrol se. Az meg tenyleg csak a jovo?"
-
sh4d0w
félisten
Melyik az a crypto modul, ami aktuálisan frissnek és biztonságosnak tekinthető, valamint free to use?
https://www.coreinfinity.tech
-
#82595328
törölt tag
-
#82595328
törölt tag
válasz velizare #1690 üzenetére
Azért ez így túlzás, ha nem értesz a GUI-hoz, akkor honnan tudod, hogy nem érdemes?
Attól hogy a Python szkriptnyelv, még lehet vele GUI-ra fejleszteni.
Nekem a wxPython-nal van tapasztalatom. Van hozzá normális GUI designer: wxFormBuilder. Amit te megcsinálsz menüt konzolon, ezt valószínűleg elég könnyen meg lehet benne csinálni. Cserébe tud sok minden mást is. Nem mondom, Linuxon macerás telepíteni (pip-pel sokszor nem megy), de Windowson pip-pel telepíthető.
Más kérdés, hogy a feladatra szerintem elég lenne egy MS Access vagy a Libreoffice Base. -
nagyúr
válasz kezdosql #1686 üzenetére
gui: nem ajánlok erre pythont használni. guiban kifejezetten nem tartozik az erős nyelvek közé. de persze próbálkozni lehet. irányok: pyqt, tkinter. én nem írok gui-t a scriptjeimhez, amihez kell, ahhoz karakteres képernyőn csinálok menüt.
adatbáziskezelés: kifejezetten nem ajánlok python adatbázist. van n+1 kipróbált és bevált adatbáziskezelő, és kb. mindegyikhez van python modul, amin keresztül meg tudjátok hajtani. vagy ha nem, az odbc-vel össze tudjátok hozni a kapcsolatot. a gadfly-t tudtommal évtizede nem fejleszti senki. ha beleszaladtok valamibe ami nem működik, vagy csak ti nem tudjátok kitalálni, hogy működik, nem fog senki segíteni. egy oracle vagy mysql/mssql, postgressel a helyzet jóval egyszerűbb, beküldesz egy selectet stringként, és lefetcheled, ami jön, bevered egy listába vagy mapbe, és tovább játszol vele.
kicsit úgy látom, hogy volt egy szögetek, ami kiállt a falból. találtatok egy kalapácsot, amire a python felirat volt ráírva. megfogtátok, és bevertétek vele a szöget a falba. viszont azóta mindent szögnek néztek.
[ 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.
-
axioma
veterán
válasz kezdosql #1686 üzenetére
Na most nem a kerdesedre valaszolok, de:
1. Milyen forrasbol viszik be az adatokat? Marmint nyilvan az lesz a valasz hogy papirbol, de egyreszt tomeges bevitel vagy egyesevel fognak beesni a dolgok; masreszt meg milyen szervezesben (hogyan csoportositva) van meg a papiron?
(+ kieg. Kik fogjak bevinni, domain ismerettel rendelkezok vagy rogzito robotok?)
2. Mi az indok, amiert sajat programot akarsz irni, mar a bevitelre is?
3. Hogy kerult mindez pont a python topikba, mi az oka a valasztasnak, egyaltalan, ki valasztotta?[ Szerkesztve ]
-
kezdosql
tag
Koszonom a segitseget, egyben valaszolok:
1. vizualizacio
Nem csicsarol van szo, hanem a tipikus "excels legyen" felhasznaloi igenyrol, tablazatkent vagy urlapkent legyen megjelenitve.Foleg az adatbevitel lesz kerdeses,oda kell olyan urlapos megoldas, amivel konnyen lehet a bonyolult adatkapcsolatokat is rogziteni es modositani.
En valoszinuleg cask az adatbeviteli resszel fogok foglalkozni, igy ha tudtok segiteni, hogyan lehet "exceles feluletet" letrehozni ugy, hogy konnyu legyen az adatbevitel es ne fordulhasson elo veletlen torles, nyitott szmmel jarok erre minden javaslatert.
2. adatbaziskezeles
Annyit tudok eddig, hogy a python listakkal es "objektumorientalt dolgokkal" foglalkozik, es MySQL-t is kepes kezelni, amit - allitolag - magasabb szinten teszi, mint a php.
Emellett van egy sajat, Gadfly nevu adatbaziskezelo alkalmazasa, azzal kell kezdenunk, hatha egyszerubb, es akkor MySQL telepites kikerulhetove valik.3. Forum Osszefoglalo vagy Ismerteto
Nagyon hianyolom az osszefoglalot, a moderator irhatna egyet, a forumon is nagyon sok ertekes bejegyzes van, amiket tartos forrasnak lehet hasznalni, amig elerhetoek.En is hozzaadnek egyet, a MEK-en van egy ingyenes Python konyv, 2.3 verzioban irt programokkal.
Tudom, mar sokan csak a 3-as verziot tekitik haszanlhatonak, de hallottam, hogy van, ahol csak a 2-es verziot lehet telepiteni, igy jo lenne, ha a link szamukra is elerheto lenne. -
nagyúr
hagyok itt es kis példakódot, ha már én szoptam vele, másnak ne kelljen.
import cx_Oracle
import sshtunnel
tunnel = sshtunnel.SSHTunnelForwarder(('IP_1_STEP', 22), ssh_username='USERNAME', ssh_password='PASSWORD', remote_bind_address=('IP_STEP_2', 22), local_bind_address=('127.0.0.1', 22222))
tunnel.start()
tunnel_db = sshtunnel.SSHTunnelForwarder(('127.0.0.1', 22222), ssh_username='USERNAME', ssh_password='PASSWORD', remote_bind_address=('IP_STEP_FINAL', 1521), local_bind_address=('127.0.0.1', 1521))
tunnel_db.start()
dsn_tns = cx_Oracle.makedsn('127.0.0.1', 1521, 'DB_SID')
conn = cx_Oracle.connect('DB_USERNAME', 'DB_PASSWORD', dsn_tns)
print(conn.version)
conn.close()
tunnel_db.close()
tunnel_close()magyarázat: két, egymást követő gatewayen keresztül történő db elérés. paramikoval nem tudtam megcsinálni, pedig beletettem az effortot.
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.
-
nagyúr
py3 könyv, magyarul, legálisan, ingyen Hogyan gondolkozz úgy, mint egy informatikus: tanulás Python3 segítségével.
köszönet érte a debreceni egyetem hallgatóinak és oktatóinak.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.
-
kezdosql
tag
válasz velizare #1679 üzenetére
Egyszerueket, mint pl. telefonjegyzek, amikor nehany fele adatot kell tarolni, de bizonyos adatbol tobbfele lehet, igy a klasszikus tablazatos megoldas nem mukodik.
A hangsuly inkabb a konyen kezelhetosegen van, hogy definialni lehessen kulonbozo szempontok szerinti megjelenitest egy gombnyomasra.
-
kezdosql
tag
Remelem, most mar jo helyre teszi, egy ideje valami gond van a forummal.
Par het mulva indul a project, a celja, egy konnyen kezelheto, vizualis megjelenesu adatbazis letrehozasa.
Milyen oktatoanyagot javasoltok, amivel elmelyedhetek a python ezen reszeben?
-
xTREem
tag
válasz velizare #1676 üzenetére
Mint fentebb említettem, email küldése sikerült, azonban a melléklet .bin kiterjesztésű lett.
Az alábbi programrészlet hibázott:part = MIMEBase('application', 'octet-stream')
part.add_header('Content-Disposition', 'attachment', 'filename="{}"'.format(os.path.basename(file)))helyesen:
part.add_header('Content-Disposition', 'attachment', filename=os.path.basename(file))
Így már rendesen megkapja a címzett a mellékeltet.
Üdv
[ Szerkesztve ]
-
xTREem
tag
Szevasztok!
Pythonból (3.7) küldenék mailt. Minden szép és jó, kivétel a melléklet, melynek neve ha ékezetes karaktert tartalmaz, a címzettnél "ATT00001.BIN" néven látható. Ékezet nélkül rendben megy. Mi lehet a megoldás?
[ Szerkesztve ]
-
nagyúr
válasz cousin333 #1672 üzenetére
pontosan ott, hogy van egy ilyen kód
ssh_tunnel.py
# -*- coding: utf-8 -*-
import getpass
import sshtunnel
class jumpserver():
"""
this class realizes the jumpserver relay to get next to the db.
methods:
run(): starts the ssh tunnel.
disc(): closes the ssh tunnel.
"""
def __init__(self):
#read jumpserver and db connection path from file
#list
with open('ssh_tunnel.cfg') as ssh_tunnel_list:
ssh_tunnel_list = [x.strip('\n') for x in ssh_tunnel_list.readlines()]
#mapping connection data to string
self.ssh_tunnel_user = ssh_tunnel_list[1].replace('jumpserver user = ', '', 1)
self.ssh_tunnel_pw = ssh_tunnel_list[2].replace('jumpserver password = ', '', 1)
self.ssh_tunnel_ip = ssh_tunnel_list[3].replace('jumpserver ip = ', '', 1)
self.db_ip = ssh_tunnel_list[4].replace('db ip = ', '', 1)
while True:
if not self.ssh_tunnel_user:
self.ssh_tunnel_user = input("Input ssh tunner user:")
if self.ssh_tunnel_user:
break
else:
break
while True:
if not self.ssh_tunnel_pw:
self.ssh_tunnel_pw = getpass.getpass("Input ssh tunner password:")
if self.ssh_tunnel_pw:
break
else:
break
def run(self):
"""
starts the ssh tunnel.
"""
#starting tunnel
self.tunnel = sshtunnel.SSHTunnelForwarder((self.ssh_tunnel_ip, 22), ssh_username=self.ssh_tunnel_user, ssh_password=self.ssh_tunnel_pw, remote_bind_address=(self.db_ip, 1521), local_bind_address=('127.0.0.1', 1521))
try:
self.tunnel.start()
except:
print("connection to jumpserver", self.ssh_tunnel_ip, "as", self.ssh_tunnel_user, "failed.")
else:
#print("connection successful")
pass
return self.tunnel
def disc(self):
"""
closes the ssh tunnel.
"""
self.tunnel.stop()és van egy main.py, amelyik meghívja ebből az osztályból instalcol, és hívogatja a metódusait.
main.py
# -*- coding: utf-8 -*-
import ssh_tunnel
js = ssh_tunnel.jumpserver()
with js.run():
if js.run():
print("connection successful")
loop = True
while loop: ## While loop which will keep going until loop = False
if stuff_2_do:
do_stuff()
continue
elif:
os.system('cls||clear')
print("bye")
js.disc()
break # This will make the while loop to end as not value of loop is set to Falseés itt van az, hogy erre a main.py-re indítva egy debuggert, a js már nem jelenik meg, mint változó/object a debuggerben.
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.
-
nagyúr
válasz cousin333 #1670 üzenetére
köszi neked is. mindkettővel ugyanaz a gondom, ha egy másik (saját) fileból importolok egy classt, és azt instancolom, azokat az objecteket már nem nagyon jelzi magától. a step into gombok is szürkék.
hogyan tudom ezt beállítani, vagy miket kell beleirkálnom a moduljaimba, hogy ez működjön?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.
-
nagyúr
van olyan ide és hozzá plugin, amivel futtatás közben hozzáférek az objectek attribjaihoz? a spídernek van egy ilyesmi funkciója, de nekem nagyon nem akar mostanában működni. :|
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.
-
KEAN
tag
Szerintem arra gondolhatott, hogy a
listaujelem
hogyan jut el alistahozzaadas
függvényhez. Jelenleg ez a kód így működik, de ez inkább köszönhető szerencsés "véletlenek" sorozatának, mint tudatos dolognak, aztán a függvény paraméterét is elég szerencsétlen dologlist
-nek nevezni, ez egy adattípus neve a Pythonban, tehát "foglalt" kulcsszó, más kérdés, hogy a Python ezt szó nélkül engedi felüldefiniálni. Harmadjára pedig így ebben a formában a függvényhívás is felesleges, simán mehetne helyette egyből alista.append(listaujelem)
... és így az említett hibákat is "automatikusan" elkerülöd.Szerk: Tovább az az
if
is sokkal elegánsabb így:if parancs.lower() == "új elem":
[ Szerkesztve ]
"Persze, hogy tudtam, csak nem sejtettem!"
-
boda16
újonc
Sziasztok!
Tudtok segíteni?
Nem tudom mi lehet a probléma a kódommal. Az a problémám, hogy mikor új elemet adok a listámhoz folyton felülírja az előzőt, ezért mindig csak egy elem lehet a listában.def listahozzaadas(list):
list.append(listaujelem)
while(True):
parancs = input("Várom az utasítást: ")
lista = []
if parancs == "új elem" or parancs == "Új elem":
listaujelem = input("Add meg az új elem nevét: ")
listahozzaadas(lista)
print(lista) -
nagyúr
válasz EQMontoya #1659 üzenetére
gondolom valahogy kilép belőle, és a garbage collector bezárja neki. de ezt a winen is megcsinálja, ha rázárod a kernelt.
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.
-
EQMontoya
veterán
Nem a Python verziók között lesz különbség, hanem a filerendszer, filecache szintjén.
Winen valszeg az történik, hogy a soha be nem zárt fileodba nem íródik ki az adat, mert csak a zárás ürítené ki a file cachet, és írná ki a tartalmát, linuxon ugyanez simán működhet másképp.
Same rules apply!
-
Szőrös
veterán
válasz velizare #1651 üzenetére
Kollégának jár a pacsi, filehandle.close után kellett a zárójel és utána windowson működött is a file-ba írás. Köszi szépen
Már csak az a kérdés, hogy a 3.4.2 és 3.6.5 között ilyen szinten van a különbség? Mert linuxon nincs zárójel és ott működik a fileba írás így is.3.4.2-es pythonal.[ Szerkesztve ]
https://starcitizen.hu ha tudni akarod mi újság az univerzumban
-
nagyúr
válasz EQMontoya #1655 üzenetére
szeretnék én is annyiszor egy gombóc fagyit, ahányszor ebbe belefutottam...! ez egy rohadt idegesítő vonzata annak, hogy a pythonban minden (még a függvény is) object. ilyenkor ha lenne egy hibaüzi, hogy ilyen állat nincs, akkor az ember tudná, hogy ez így biztosan nem lesz jó.
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.
-
nagyúr
válasz EQMontoya #1653 üzenetére
az a rövid kódja, ami mindig is működött.
a hosszabb példában, amiben a for ciklus is van, következetesen rosszul van meghívva a close.szerintem hibaüzenetet kapott arra, amikor a a for ciklusban függvényként hívta a close()-t, mert a következő iterációnál a már lezárt fileba akart beleírni, és így khm... 'javította'. mert így nem kapott hibaüzenetet futtatásnál. erre írtam, hogy ha lehet, toljuk ki a close()-t cikluson kívülre.
[ 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.
-
nagyúr
nem lehet. az
io.close()
egy függvény, nem utasítás. afaik mindig is az volt pythonban. aprint()
volt még a 2.xxben statement, meg lehetett hívni üresen, zárójel nélkül, de a 3.xxben már függvény, és úgy is kell meghívni.
afilehandle.close()
a close() függvényt (metódust) hívja meg. afilehandle.close
pedig nem.
ha jobban megnézed, a rövid példádbanfilehandle.close()
szerepel, az azért működött.az a zárójel nem dísznek van ott, vagy az én úri hóbortom miatt. nem stilisztika.
[ 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.
-
Szőrös
veterán
-
nagyúr
a close függvény. helyesen
filehandle.close()
. nem csoda, hogy a file-t létrehozza, de nem csinál semmit. ha kilövöd a py kernelt, akkor persze megjelenik a file, benne a tartalommal, mert a garbage collector lezárja neked.ja és javasolt kirakni cikluson kívülre.
import time
import random
print("itten most fileba irok")
filehandle = open("teszt2.txt", 'w')
random.seed(3)
for x in range(0, 10):
time.sleep(0.3)
y = random.randint(0, 100)
print("loop number: " + str(x) + " random number = " + str(y))
filehandle.write("Random number, index:" +str(x)+ "randomNumber:" +str(y)+"\n")
filehandle.close()
print("end")[ 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.
-
justmemory
senior tag
Szia,
hát akkor indulhat a debug
Én kb. ebben a sorrendben próbálnám:
import time
import random
print("itten most fileba irok")
filehandle = open("teszt2.txt", 'w')
filehandle.write("Random number, index:")
filehandle.close
print("end")Ha ez működik, akkor maga az írás funkcióval nincsen gond, mással lesz a hiba. Következő:
import time
import random
print("itten most fileba irok")
filehandle = open("teszt2.txt", 'w')
for x in range(0, 10):
time.sleep(0.3)
filehandle.write(str(x)+"\n")
filehandle.close
print("end")Ha ez is működik, akkor a string-é konvertálással sincsen gond, tehát ismét máshol van a baki. Ha ez nem íródna ki, akkor "B" verzióban meg lehetne próbálni, hogy:
import time
import random
print("itten most fileba irok")
filehandle = open("teszt2.txt", 'w')
for x in range(0, 10):
time.sleep(0.3)
z = str(x)
filehandle.write(z+"\n")
filehandle.close
print("end")Egyelőre ennyi az ötlet, meglátjuk mi a helyzet...
--- Imprisoned, inside this mind... --- Joined at the soul with a pair of headphones ---
-
Szőrös
veterán
válasz EQMontoya #1644 üzenetére
Működik, megy a file-ba írás, de ezzel is megy:
filehandle = open("teszt.txt",'w')
filehandle.write("Hello World2")
filehandle.close()A probléma a másik kódnál van, amiben stringet akarok file-be írni, na az nem akar működni a win-es gépen.
[ Szerkesztve ]
https://starcitizen.hu ha tudni akarod mi újság az univerzumban
-
EQMontoya
veterán
Ez elég fura.
Próbáld ki pls, hogy with-tel használod a filet.
Valahogy így:
with open("akarmi.txt","w") as outfile:
outfile.write("Akkorisbelemesz, kocsoooog!");(ilyenkor nem kell close, a with block végén automatikusan megtörténik. Bővebben lásd: RAII pattern)
[ Szerkesztve ]
Same rules apply!
-
Szőrös
veterán
válasz justmemory #1641 üzenetére
Bocsesz, a formázást elfelejtettem de úgy csináltam ahogy Te is.
Most kipróbáltam a pi3-on is linux alatt, ott rendesen működik nekem is. Azon 3.4.2-es python verzió van, win10-en meg 3.6.5 de gondolom ez nem olyan nagy eltérés, főleg, hogy az első kóddal működik.#1642) EQMontoya: létrejön, direkt néztem, de ki is töröltem a file-t, aztán futtatás után létre is jött csak üresen.
[ Szerkesztve ]
https://starcitizen.hu ha tudni akarod mi újság az univerzumban
-
justmemory
senior tag
Szia,
ugyan nem használtad a beépített kód formázást a hozzászólásodban, így a magam esze szerint teszteltem; nálam python 2.5 alatt (nyilván a
print
parancsot átírva) .py kiterjesztésű file-ba kiírva és úgy futtatva működik...import time
import random
print("itten most fileba irok")
filehandle = open("teszt2.txt", 'w')
random.seed(3)
for x in range(0, 10):
time.sleep(0.3)
y = random.randint(0, 100)
print("loop number: " + str(x) + " random number = " + str(y))
filehandle.write("Random number, index:" +str(x)+ "randomNumber:" +str(y)+"\n")
filehandle.close
print("end")[ Szerkesztve ]
--- Imprisoned, inside this mind... --- Joined at the soul with a pair of headphones ---
-
Szőrös
veterán
Sziasztok, nagyon kezdő pythonosként kérnék egy kis segítséget, nézek egy oktatóvideót és az alapján haladok. File írással van egy kis gond.
Ez a nagyon egyszerű írás rendesen lefut és meg is történik a fileba írás:filehandle = open("teszt.txt",'w')
filehandle.write("Hello World2")
filehandle.close()Ez is lefut, létre is jön a file, de nem íródik bele semmi:
import time
import random
print("itten most fileba irok")
filehandle = open("teszt2.txt", 'w')
random.seed(3)
for x in range(0, 10):
time.sleep(0.3)
y = random.randint(0, 100)
print("loop number: " + str(x) + " random number = " + str(y))
filehandle.write("Random number, index:" +str(x)+ "randomNumber:" +str(y)+"\n")
filehandle.close
print("end")Nem értem miért, vscode-ban próbáltam először, , aztán idle-ben, de nem akarja az igazságot.
Mi a tököt rontok el?https://starcitizen.hu ha tudni akarod mi újság az univerzumban
-
-
kezdosql
tag
Tudja valaki, melyik az az ingyenes program, amivel python, php es tobb mas programnyelven irt programot lehet strukturaltan latni es szerkeszteni?
Ugy ertem, automatikusan tabulalja a sorokat mutatva a rutinok elejet es veget, kiemelve a parancsokat, stb.
-
nagyúr
-
nagyúr
válasz velizare #1632 üzenetére
ja az exec_one() az egy sima
def exec_one(self, sql, commit=False, talkback=False):
try:
self.cursor.execute(sql)meg némi debug rész utána, +opcionális commit.
[ 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.
-
nagyúr
van egy olyan kínom, hogy 3.5-6 alatt a csv modul kényszeresen konvertál minden intet floatba, és mögétesz egy .0 taget.
van ötlet, hogy lehet erről lebeszélni? a doksija azt írja, hogy csak a writerquoting=csv.QUOTE_NONNUMERIC
megadásánál kéne csinálnia, énquoting=csv.QUOTE_ALL
-t használok, delimiterrel, aszt mégis csinálja...a kód:
try:
snames=['db_1', 'db_2', 'db_3']
for i in range(len(snames)):
tnames=['table_1']
for j in range(len(tnames)):
export_all = export_2_file(servicename=snames[i])
export_all.csv_init('2018_07_31', snames[i] + '_' + tnames[j])
export_all.export_2_csv(tnames[j])a használt függvények:
import csv
import time
from connect_2_db import connect_2_db
class export_2_file():
def __init__(self, servicename=False):
#instancing db connection
if servicename:
self.cdb = connect_2_db(servicename)
if not servicename:
self.cdb = connect_2_db()
self.cdb_brdb = self.cdb.brdb()
def csv_init(self, csvdir, csvname, master=False):
self.timestr = time.strftime("%d-%m-%Y_%H_%M_%S")
filename = str(csvdir)+'\\'+str(csvname)+'_'+self.timestr+'.csv'
self.filename_act = filename
self.resultcsv = open(filename, "w", encoding="iso-8859-15", newline='')
self.output = csv.writer(self.resultcsv, delimiter=';', quotechar='"', quoting=csv.QUOTE_ALL)
def export_2_csv(self, tablename):
#create and execute query sql
self.sql = u"SELECT column_name FROM all_tab_cols WHERE table_name ='"+tablename+"' AND column_name NOT IN ( 'REFERENCE_TUPLE_ID', 'INSERTDATE' ) order by column_id asc"
self.cdb.exec_one(self.sql)
self.preselect = self.cdb.cursor.fetchall()
self.preselect_str = str([' '.join(item) for item in self.preselect]).strip('[]').replace("'", "")
#using the previous query result to create the select
#to query target table without having the fixed cells like sysdate, sequences, etc.
try:
self.sql_select = u"select "+self.preselect_str+" from "+tablename+" order by "+self.preselect_str
except:
pass
else:
self.result = self.cdb.exec_one(self.sql_select)
for row in self.result:
self.output.writerow(row)
print("\nExport "+tablename+" table succcess")
self.cdb.db_disc()
self.resultcsv.close()anonimizált részlet az eredményfileból
"customer_1";"customer_network";"2018-07-30 00:00:00";"31.0";"random error message'";"000000000000001"
a konvertált mező number típusú az oracleben.
[ 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.
-
veterán
Sziasztok,
Egy furcsa formátumú idő bélyeget szeretnek emberi formátumra átkonvertálni, de nem boldogulok vele.
Ez lenne a formátum: Mon Jul 23 14:54:00 +0000 2018
És olyanra szeretném hogy YYYY-MM-DD HH:MM:SS
Mi erre a metódus?
Előre is köszönöm a segítséget. -
BoB
veterán
You may corrupt the souls of men, but I am steel. I am doom.
-
KEAN
tag
válasz 0xmilan #1626 üzenetére
"a 'system python'-tol valo szeparacio"
A Virtualenv pont erre való: https://virtualenv.pypa.io/en/stable/
Régen én se használtam, ma meg már el sem bírom képzelni, hogy enélkül dolgozzak."Persze, hogy tudtam, csak nem sejtettem!"
-
0xmilan
addikt
válasz sztanozs #1625 üzenetére
Az egyik lynda-s data science tutorialban a 'system python'-tol valo szeparacio volt az indok.
"I do not recommend using your system Python for development in this course, for the following reasons: one disadvantage of using the system Python for real development is that changes to the environment could potentially have an impact on the system for Mac and Linux users, Windows does not use Python for system tasks, and so is unaffected by this issue; another disadvantage is that making changes to the system Python usually requires root, super-user, or administrator level access, which is fine for user's personal desktop, but on shared systems and many corporate computers, it can become a hassle, even installing packages can be a real challenge if users do not have elevated privileges; for Windows users, a final disadvantage of using out-of-the-box Python, is that Windows users often lack compilers and other development tools."
-
sztanozs
veterán
válasz cousin333 #1624 üzenetére
Miért kell Anakonda? CP + PIP-pel bármilyen csomagot le lehet húzni, ami a kondában van. Ráadásul mostmár a CP is telepíthető admin nélkül is.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Zed895
csendes újonc
válasz velizare #1620 üzenetére
Koszi, akkor most szeretnek elnezest kerni, az altalad javasolt honlapon szepen erthetoen minden le van irva, csak tegnap ejjel amikor feltettem a kerdest, akkor mar tul faradt voltam, hogy felfogjam mi van, ma meg ugye beparaztam a "Recent Debian/Ubuntu versions have modified pip to use the “User Scheme” by default, which is a significant behavior change that can be surprising to some users." -tol.
De feltettem a hianyzo ket csomagot, aztan pip-el siman felment python3.x ala is szepen.
Koszonom.@Kovisoft
Koszi!Debian 9,5
-
nagyúr
itt ugye a sztori azzal kezdődik, hogy
#install dependencies
sudo apt-get install mercurial
és még sok minden más.
a mercurial egy forráskód management tool, olyan, mint a git. a bitbucket viszont mercurial repót használ, ezért kell. a hg clone paranccsal lemásolod a mögötte szereplő urlen található repositoryt.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.
-
-
Zed895
csendes újonc
válasz velizare #1617 üzenetére
Koszi, de ez nekem magas. Kivalasztom az ubuntut (mivel a listan levok kozul az hasonlit leginkabb a Debianra) es mondjuk a pip -en keresztuli installt es olyan parancsokat latok amiket nem ertek pl.: "hg". Megnezem a hg man oldalat es nincs ilyen entry. Jo, akkor google-zak ra, hogy mi az a "hg"? Ez csak ket betu sose talalom meg google-val, man page meg ugye nincs hozza. Es ez csak az egyik parancs amit nem ertek. Azt meg nem merem megkockaztatni, hogy csak copy-paste a parancsokat aztan majd lesz valami...
Remeltem, hogy a Debian repositorybol fel tudom tenni egyszeruen, onnan fel is ment, de csak python2.x-el mukodik, en meg 3.x -et hasznalok IDLE -vel.
Amugy azt hiszem elosszor a PIP-et kellene fetennem:
https://packaging.python.org/guides/installing-using-linux-tools/#installing-pip-setuptools-wheel-with-linux-package-managers
de itt a Debian szekcio alatt ezt irja: "Recent Debian/Ubuntu versions have modified pip to use the “User Scheme” by default, which is a significant behavior change that can be surprising to some users." -ez mit jelent, aggodjak miatta vagy ignoraljam?Koszi,
Z.[ Szerkesztve ]
Debian 9,5
-
Zed895
csendes újonc
Sziasztok,
kernek egy kis segitseget: python3.5-ot hasznalok IDLE-vel, Debian 9 alatt.
Nem tudok pygame-t telepiteni a python3.5 ala, csak a python2.7 alatt mukodik.
Felturtam mar a fel netet, de ha Debian akkor csak python2-hoz van ertelmes segitseg, python3-hoz csak windows ala talaltam. Szoval megkoszonnem ha valakinek van otlete, hogy pygame-t hogy telepitsek python3.x-hez.
Koszonom.Debian 9,5
-
sztanozs
veterán
válasz djcsabii #1613 üzenetére
Az lehet a gond, hogy email.py-nek nevezted el a fájlt. Nevezd át, és vsz menni fog.
Ha akkor sem megy, akkor kell majd még az email csomagot installálni:pip install email
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
KEAN
tag
Hali,
az Rpi-hez én sem értek, de némi netes keresgélés után nekem úgy tűnik, hogy GPIO.setup()-nak, van még egy default paramétere: initial=GPIO.HIGH.
Szóval én a kérdéses parancsot így adnám ki:GPIO.setup(22, GPIO.OUT, initial=GPIO.LOW)
... vagy valami hasonló."Persze, hogy tudtam, csak nem sejtettem!"
-
alec.cs
tag
Sziasztok!
A véleményetekre lennék kíváncsi.
Adott egy python program (most nem is ez a lényeg) és hozzá tartozó .mo fájlal (fájlokkal) a többnyelvűség miatt. Például: hu.mo, en.ho, de.mo, ...
A ,po fájlból -> .mo fájl áll elő.
A kérdésem az, hogy a .po fájlba szerintetek bele építhető például változó, nem csak egyszerű szöveg?
Mondok rá példát (.po):
Egyszerű szöveg:
msgid "m"
msgstr "méter"Változó:
msgid "hossz_m"
msgstr "méter"Tehát ha van egy .py fájl benne a következővel -> _("hossz_m") , akkor az mennyire megfelelő?
Nyilván működik, de mennyire alkalmazható?
Ha változó van használva, akkor minden más nyelvhez tartozó .po fájlba be kell építeni a "hossz_m" msgid-t, mert ha nincs beépítve, akkor esetleg így íródik ki a helyettesítő szöveg: " 1 hossz_m" a "1 méter" helyett.
Remélem érthető, hogy mit is kérdezek.
Várnám a véleményeteket ezzel kapcsolatban. Végül is ez elvi kérdés, nem gyakorlati (mind a két esetben jól működik a kód).
- - - - - -
Példa program:
teszt.py ->
...
def hossz:
return _("hossz_m")
...print hossz(15)
Hozzá tartozó .po fájlok:
hu.po:
msgid "hossz_m"
msgstr "méter"en.mo:
msgid "hossz_m"
msgstr "meter"Így jól működik, de az en.po fájlba is kell a msgid. A másik esetben, mikor msgid="m" van a hu.po-ban és _("m") van a .py fájlban, akkor nem szükséges a többi .po fájlba rakni a msgid-t, mert mindig érthetően íródik ki a print hossz(15). -> "15 m"
Tehát, akkor várnám a véleményeiteket...
-
#82595328
törölt tag
válasz Regirck #1605 üzenetére
Pár megjegyzés:
- Az index változó minek? Egyáltalán minek indexelni? Csak mert ott az index függvény. Feltéve hogy az elemek különbözők.
Pl:lista = ['a', 'b', 'c', 'd '];
for elem in lista:
print (lista.index(elem)+1, elem )Ez kb. ugyanígy működne fájlba kiíratáskor is.
- A fájl megnyitásra inkább használd a with open szerkezetet.
- Éppen függvényekkel is megcsinálhatod a feladatot, de egyelőre csaj feleslegesen bonyolítod a dolgot vele. -
llacee
őstag
Sziasztok!
Segítséget szeretnék kérni, nagyon kezdő vagyok Rpi és Pythonban is, eddig csak Java-hoz volt szerencsém.
RPi3 és egy 5V-os relé párosnál szeretném megoldani, hogy ki gomb lekapcsolja, be gomb bekapcsolja a relét.
25 variációt kipróbáltam és nem akar menni, hol rontom el?
Olyan, mintha a függvényt meg sem hívná, hanem az inicializálásnál bekapcsol, ablak bezáráskor kikapcsol...
Legutolsó változat:import tkinter as tk
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(22, GPIO.OUT) #Ilyenkor már High-ba teszi az állapotot, behúz a relé.
root = tk.Tk()
frame = tk.Frame()
frame.pack()
def low():
GPIO.output(22,0)
def high():
GPIO.output(22,1)
button1 = tk.Button(frame,
text="Ki",
fg="red",
command=low)
button1.pack(side=tk.LEFT)
button2 = tk.Button(frame,
text="Be",
command=high)
button2.pack(side=tk.LEFT)
GPIO.cleanup() #kikapcsol a reléLétre jön a frame a gombokkal, de nem reagál, nem értem továbbá, hogy a GPIO.setup(22, GPIO.OUT), nál mért kapcsol be a relé. Ezzel csak inicializálom a kimenetet. De frame és gombok nélkül csak szekvenciális futtatásnál is ez a gond.
Köszönöm szépen!
[ Szerkesztve ]
-
Regirck
senior tag
válasz cousin333 #1604 üzenetére
Sziasztok, bocs a késői válaszért.
Suliba kell csinálni egy ilyen feladatott, de ez előtt nem nagyon Python-oztam, így megakadtam benne.
A lényeg, hogy van egy üres .txt fájlunk amit felkell tölteni user által bevitt adatokkal terminálból. Az első bevit adatt lenne:
1. autó
2. bicikli
3. repülőazaz ilyen lista szerűen vinni be (indexxelve). Utána ha kitörölnénk a 2.-es indexet akkor így nézne ki.
1. autó
2. repülőLényegében egy adatbázis kellene csinálni amit végül csak .txt-be mentődik. Az adatbázis meg egy szimpla index + stringből állna. Ezt utána terminálos arguments-ekkel tudni kell müködtettni.
Azóta nem sok időm volt foglalkozni vele, így a kód elégé kezdetleges.
def read():
file = open("/home/regirck/Python/storage.txt", "r")
print(file.read())
line = 0
for line in file.readlines():
print(line)
line = line + 1
file.close
def write():
file = open("/home/regirck/Python/storage.txt", "w")
index = 1
value = (index, "car")
myString = str(value)
file.write(myString)
file.close
write()
read() -
cousin333
addikt
válasz Regirck #1600 üzenetére
Amint már mások is írták akad itt még pár eldöntendő kérdés.
A legegyszerűbb megoldás szerintem néhány függvény: a beolvas, hozzaad és a torol.
fajl = 'd:\\szovegfajl.txt'
def beolvas():
with open(fajl, 'r') as file:
lista = [line.strip('\n') for line in file]
return lista
def hozzaad(elem):
lista.append(elem)
with open(fajl, 'w') as file:
for i in lista:
file.write(i + '\n')
def torol(sorszam):
_ = lista.pop(sorszam)
with open(fajl, 'w') as file:
for i in lista:
file.write(i + '\n')Vagy valami ilyesmi...
[ Szerkesztve ]
"We spared no expense"
-
#82595328
törölt tag
válasz Regirck #1600 üzenetére
A kérdésedből semmi nem világos.
- Hogy néz ki a txt fájl?
- Ugyanaz a szerkezete mint amit hozzá akarsz adni?
- Mit értesz index alatt? Minek külön index?
- Hogy olvasod be a txt fájlt?Én valahogy úgy képzelem a folyamatot, hogy:
1. Van egy listád txt-ben.
2. Ezt beolvasod egy változóba.
3. Ezt a változót szerkeszted
a, hozzáadsz
b, törölsz
4. A végén kiírod txt-be.Ez nem tűnik túl bonyolultnak. Mi nem megy?
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Axon Labs Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest