Hirdetés
- Xiaomi 17 Ultra - jó az optikája
- Vivo X300 Ultra - tárcsázz, ha van rá keret!
- Fotók, videók mobillal
- iPhone topik
- Google Pixel topik
- Nothing Phone 2a - semmi nem drága
- Milyen okostelefont vegyek?
- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
- Android alkalmazások - szoftver kibeszélő topik
- Honor 200 Pro - mobilportré
Ú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
Hirdetés
- Autós topik
- Bambu Lab 3D nyomtatók
- Napelem
- Xiaomi 17 Ultra - jó az optikája
- A fociról könnyedén, egy baráti társaságban
- Vivo X300 Ultra - tárcsázz, ha van rá keret!
- Konkrét moderációval kapcsolatos kérdések
- Kerékpárosok, bringások ide!
- Elektromos rásegítésű kerékpárok
- Építő/felújító topik
- További aktív témák...
- Nvidia GeForce RTX 3070 Founders Edition 8GB, Garanciával!
- Új, Gamer félgép - GIGABYTE B850 GAMING X WiFi + Ryzen 7 9800X3D + Corsair 2x16GB DDR5 6000MHz
- Újszerű MSI Thin 15 - 15.6"FHD 144Hz - i5 -13420H - 16GB - 512GB - Win11- RTX 3050 - 2+ év garancia
- Intel Core I9 14900KS - 24mag/32szál - Eladó!
- Apple TV 4K 2021 32 GB (A2169)
- HP EliteBook 655 G10 15" Ryzen 5 PRO 7530U 32GB RAM Garancia 2028.02.27.
- 209 - Lenovo Yoga Pro 7 (14APH8) - AMD Ryzen 7 7840HS, no GPU
- Windows 10 / 11 Pro Retail aktiváló kulcs Azonnal szállítással, számlával, garanciával!
- Game Pass Ultimate előfizetés azonnal, egyszerűen, OLCSÓN! Immáron 8 éve!
- Lenovo ThinkPad T14s Gen 5 Intel Ultra 5 135u,16 gb DDR5 6400,garancia 2028.03.
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

