Új hozzászólás Aktív témák
-
F1DO
senior tag
Jó, mostmár beugrott, működik.
Az
enumerate(fajl.readlines()):
helyett:
enumerate(az egy tételt kiadó, össze appendelt lista neve): -t adom meg és így már úgy viselkedik ahogy elképzeltem, az appendelős for ciklus után betéve a kódod egy 'összeállított' file-ba írandó tétel után kiírja a hozzá tartozó keresett szót. Ez mehet változóba és filenévként...Köszönöm
-
F1DO
senior tag
válasz
sztanozs
#3263
üzenetére
Ott van most az elakadásom, hogy olyan listában akarom megtalálni a string-et, amiben 'Egész komplett mondatok szerepelnek', ' és így a lista elemeire nem használható a find vagy az index metódus' -- arra hogy egyetlen szó (pl. elemeire) pozícióját megtaláljam a listában..
ugye a file-ból soronként veszem ki az adatokat és az egész algoritmus listákkal, lista feltöltésekkel dolgozik.
Ami megoldást adtál az a komplett file-ra ráfut, csak abban a for ciklusban ahol a feltöltés zajlik és ahol 'találkozik' az algoritmus a keresett szóval és meg tudná fogni az már lista adattípus és az egész sor mint a lista egyetlen eleme kerül a listába
egy kimásolandó új file-ba illő szövegszakaszt append-el bele tudom tenni egy újabb lista adattípusba, de annak minden egyes eleme a komplett sorok lesznek és nekem egyetlen sor közül kellene egy szót kivennem. -
F1DO
senior tag
válasz
sztanozs
#3257
üzenetére
Egy blokkon (kivett sorokon) belül 1x fordul elő a keresett kulcsszó ami után van két szóköz és utána 8 karakter hosszan a kívánt adat.
Így a blokk legyűjtő for ciklusomba tenném amit írtál elsőre kódsort, azonban az except ágra fut, semmit sem ír ki. Kérdésem hogy a szoveg változóba esetleg rosszul hivatkozhatok, -
ez lehet a következő?fajl = open("forrásfile.TXT", "r")
szoveg = fajl.readlines()avagy
szoveg = fajl ??tehát a teljes file kell neki vagy az a sor amin épp dolgozik a for ciklusban? (Kipróbáltam mindkettőt, eredménytelenül)
-
F1DO
senior tag
Az indentálás nem jelenik meg helyesen valamiért a fórummotor kiveszi így aláhúzással jelölöm
kezdet = 0
vege = 1
while vege < max(sorszamlista):
____print('text kezdete: ',sorszamlista[kezdet]) # teszt kiíratás
____print('text vége: ',sorszamlista[vege])
____sorkoz = range(sorszamlista[kezdet]-1, sorszamlista[vege]+1)____for n in sorkoz :
_________print(text[n].rstrip()) # text = fajl.readlines() #tesztelésképp kiíratás
_________print('Következő tétel ##########################')
____kezdet+=2
____vege+=2 -
F1DO
senior tag
válasz
cousin333
#3252
üzenetére
No, az éjjel tovább írtam egy lehetséges megoldást, az elmélete az, hogy
találtam egy függvényt, ami azt csinálja hogy két keresési értékre megmondja hogy melyik sorban vannak azok a szöveges file-ban. A két keresési értéknek (mivel kötött formátumú, ismétlődő szövegrészekről van szó, így meg lehetett adni a kezdő szövegrészt és a záró szövegrészt - ezek lettek a két keresési értékek)
A függvény legyűjtötte ezen sorok számát. A sorok számát aztán beletettem egy további listába, ami egymás után folytatólag tartalmazta a kezdő és záró sorok sorszámát. Aztán ezt egy for ciklussal (mert tudtam hanyadik sorban van az utolsó záró sor sorszáma) és ahhoz használt két számlálóval - a számlálókat léptetve - már range értékként egy további for ciklussal kinyertem a köztes sorok sorszámait - így megkaptam a 'lényegi információt' tartalmazó sorok sorszámát. Egy ilyen 'range' után betettem egy ellenőrző szöveges sort, ami alapján látom hogy helyesen működik-e a script (egyszerűen 'következő tétel' kiírás jelenik meg az adott for ciklus lefutása után) - ez alapján eddig megvagyok.Most jön az, hogy au egy tételhez tartozó sorokat legyűjtő for ciklus végére teszek egy file kiíratást ami soronként hozzáadja, 'másolja' a legyűjtött sorok sorszámában lévő szöveget, majd lezárja és nyitja a következő file-t, abba is írja a legyűjtött következő sorokat és így tovább. Még az kellene, hogy a megnyitott fileok amikbe a legyűjtött sorok másolódnak olyan filenéven legyen aminek adata szintén a forrás textfile-ban van.
Most keresem azt a megoldást amivel a kulcsszó utáni adott karakterhosszúságban kiveszi és egy változóba teszi azt az infót ami aztán a file neve is lesz.A talált két keresőértékes függvény:
def search_multiple_strings_in_file(file_name, list_of_strings):
"""Get line from the file along with line numbers, which contains any string from the list"""
line_number = 0
list_of_results = []
# Open the file in read only mode
with open(file_name, 'r') as read_obj:
# Read all lines in the file one by one
for line in read_obj:
line_number += 1
# For each line, check if line contains any string from the list of strings
for string_to_search in list_of_strings:
if string_to_search in line:
# If any string is found in line, then append that line along with line number in list
list_of_results.append((string_to_search, line_number, line.rstrip()))
# Return list of tuples containing matched string, line numbers and lines where string is found
return list_of_resultsés a lényegi sorok sorszámát tartalmazó lista feltöltése:
kezdet = 0
vege = 1while vege < max(sorszamlista):
print('text kezdete: ',sorszamlista[kezdet])
print('text vége: ',sorszamlista[vege])sorkoz = range(sorszamlista[kezdet]-1, sorszamlista[vege]+1)
for n in sorkoz :
print(text[n].rstrip()) # text = fajl.readlines()
print('Következő tétel ##########################')
kezdet+=2
vege+=2 -
F1DO
senior tag
Sziasztok,
Nagyon küzdök, mint disznó a jégen... hátha tudtok segíteni...
Python-ban ollóznék össze egy olyan scriptet, ami egy nagy méretű TXT file-ból megadott keresési szövegrész-től a következő ilyen keresési szövegrészig kiveszi a köztes text tartalmat és azt külön file-okba kiteszi (ismétlődő szövegrészek, amikben pár adat eltér, ezeket kellene legyűjteni és egyenként külön file-ba tenni)Namost az elképzelésem az így az elején, hogy soronként vizsgálnám és emelném át új, írásra nyitott file-okba a tartalmat, de egyrészt nem találtam még megoldást egy keresési összetett szó (mondat) miként található meg úgy, hogy az érintett sorindexet adja vissza (azaz a keresett 'mondat' hanyadik sorokban van)
Néztem a read kezdetű python függvényeket, mindenhol a read() függvényt hozzák a mintapéldákban, amivel az egész TXT file betölthető lenne, de nálam mikor ezt használnám konkrétan nem ad vissza semmit kiprintelve. Hiba nélkül lefut a kód, de nem jelenik meg semmi adat. Nem értem.
Új hozzászólás Aktív témák
- Samsung kuponkunyeráló
- GL.iNet Flint 2 (GL-MT6000) router
- OTP Bank topic
- LEGO klub
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Tanuljunk angolul!
- Elemlámpa, zseblámpa
- Headset, ami hangszóró is, AI nyaklánc, rúddal izélgethető porszívó... - CES
- CES 2026: olcsó, kompakt, többportos GaN töltőt kínál a Lenovo
- sziku69: Szólánc.
- További aktív témák...
- G.SKILL Ripjaws V 2x4GB 3000MHz DDR4 kit
- APC Smart-UPS 1500VA LCD RM 2U (SMT1500RMI2UC) - űj ára 450.000Ft
- Digitus Network Cabinet 19'' 42U DN-43000 white - Rack Szekrény
- BROCADE Ruckus ICX7150-24port - Switch - több db - 130Gbps
- 3D nyomtató - SAURER MarkingSolutions Signum Eco Lasersysteme - laser marking system
- Thermalright Phantom Spirit 120 SE
- GYÖNYÖRŰ iPhone XR 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3995, 100% Akksi
- TP Link HS100 Távolról vezérelhető Wi-Fi-s dugalj (Smart Plug)
- Samsung Galaxy S24 Ultra 120 Hz Dynamic AMOLED 2X, beépített S Pen, Galaxy AI 12/256 GB
- Bomba ár! Lenovo ThinkPad T495 - Ryzen 5 PRO I 16GB I 512SSD I 14" FHD Touch I Cam I W11 I Gari!
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

