Új hozzászólás Aktív témák
-
cousin333
addikt
Továbbra is úgy gondolom, hogy neked felesleges a sorszámokkal foglalkozni, elvégre a START sztring és a STOP sztring nincs átfedésben. Egyszerűen végig kell menni a fájlon, és kiírogatni a megfelelő sorokat, majd nyitni egy új fájlt, oda is kiírni... stb.
Tegyük fel, hogy van a szoveg.txt fájlod, amit fel akarsz dolgozni:
blahbla
blahbla2
START
Első sor
Adat: valami
még egy sor
STOP
blah
START
Új fájlba
újabb sor
Adat: minden
STOP
semmiEkkor csak egyszer végig kell menni a fájlon és keresni a megfelelő sorokat. A nehézséget csak az jelenti, ha a START és a STOP között van a sor, ami a fájlnevet adja, így azt nem tudhatjuk előre. Ilyenkor azt csinálnám, hogy univerzális fájlnevet adok, és a végén átnevezem:
import osstart_string = 'START'stop_string = 'STOP'file_string = 'Adat:'filename = ''output_file = Nonewith open('szoveg.txt', 'r') as input_file:for line in input_file:if line.startswith(start_string):output_file = open('output.txt', 'w')elif line.startswith(stop_string):output_file.close()os.rename('output.txt', filename + '.txt')elif line.startswith(file_string):filename = line[6:] # Vagy ahogy ki kell találni a fájlnevetelse:output_file.write(line) -
ha a kifejezés csak egyszer van:
szoveg = 'valami másvalami'
kifejezes = 'más'
hossz = 3
try:
ix = szoveg.index(kifejezes)
# ha a kifejezes is kell + hossz
print('kif szoveg: ', szoveg[ix:ix+len(kifejezes)+hossz])
# ha a kifejezes nem kell
print('csak szoveg: ', szoveg[ix+len(kifejezes):ix+len(kifejezes)+hossz])
except:
passha a kifejezés többször is van:
szoveg = '''valami másvalami
még másvalami
egészen más'''
kifejezes = 'más'
hossz = 3
try:
while True:
ix = szoveg.index(kifejezes)
# ha a kifejezes is kell + hossz
print('kif szoveg: ', szoveg[ix:ix+len(kifejezes)+hossz])
# ha a kifejezes nem kell
print('csak szoveg: ', szoveg[ix+len(kifejezes):ix+len(kifejezes)+hossz])
szoveg = szoveg[ix+len(kifejezes)+hossz:]
except:
passha a kifejezés többször is van, és eleje-vége között kell a szöveg:
szoveg = '''random szöveg
valami másvalami
még másvalami
egészen más
szöveg ami bekavarhat :D'''
eleje = 'más'
vege = 'mi'
try:
while True:
ix = szoveg.index(eleje )
iy = szoveg[ix:].index(vege)
# találat
print(szoveg[ix:ix+iy+len(vege)])
szoveg = szoveg[ix+iy+len(vege):]
except:
pass -
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
Új hozzászólás Aktív témák
- Lenovo Thinkpad P1 Gen 6 - i9-13980HX, 32GB, 2TB SSD, 16" WQUXGA (3840 2400), RTX 4090
- 15.gen! Intel Core Ultra 9 285K +16-32GB DDR5 RAM +hűtött VRM-es Z890 lap! GAR/SZÁMLA (a Te nevedre)
- OP AudioCodes C450HD Ip Phones - Szines kijelzős - Teams/ Zoom telefon - Új dobozos
- ATEN Cat 5 KVM over IP Switch Altusen KH1508AI - Új ára 284.000Ft
- AirPort Extreme 802.11n (3rd Generation) Model A1301 -
- Apple iPhone 12 64GB,Újszerű,Dobozával,12 hónap garanciával
- BESZÁMÍTÁS! MSI B450M R5 4650G 16GB DDR4 500GB SSD RTX 2060 Super 8GB Rampage SHIVA ADATA 600W
- BESZÁMÍTÁS! Gigabyte H610M i5 12400F 32GB DDR4 1TB SSD RX 6800 16GB Zalman Z1 Plus Seasonic 750W
- GYÖNYÖRŰ iPhone 12 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3881
- iPhone 17 Pro Max Mélykék - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok !!
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

