Čítanie zo súboru – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Čítanie zo súboru – Python – Fórum – Programujte.comČítanie zo súboru – Python – Fórum – Programujte.com

 

Poohlížíte se po nové práci? Síťař se znalostí Windows administrace
Andrej
~ Anonymní uživatel
38 příspěvků
18. 2. 2019   #1
-
0
-

Dobrý deň,

mám úlohu v programovacom súbore python, potrebujem vypísať vety zo súboru kde to prečíta celý súbor a potom vybere a vypíše vety, ktoré začínajú znakom # a končia znakom $

Ďakujem za pomoc

Nahlásit jako SPAM
IP: 95.103.142.–
weroro0
Návštěvník
18. 2. 2019   #2
-
0
-

A s čím ti máme pomôcť?

O čo si sa pokúsil? Ukáž časť kódu, ktorý si napísal a nefunguje a nevieš si rady ako ďalej.

Ako si spomenul, je to úloha do školy, tak je potrebné aby si sa trochu posnažil a vyvinul nejaké úsilie.   

Nahlásit jako SPAM
IP: 195.98.7.–
Front-end senior web developer at Azet, a.s. & Ringier Axel Springer Slovakia.
JavaScript (ECMA5, ECMA6+), TypeScript, HTML, CSS specialist
Andrej
~ Anonymní uživatel
38 příspěvků
19. 2. 2019   #3
-
0
-

#2 weroro

import re

A = open('textfile.txt','r')
F = A.read()

m = re.findall(r"#1(.*)\#1", F)
m = re.findall(r"#1(.*)\$2", F)
print (m)

potrebujem aby mi našlo text medzi znakmi #1 a #1 a zároveň #1 a $2 a aby vypísalo len ten text

Nahlásit jako SPAM
IP: 95.103.142.–
gna
~ Anonymní uživatel
817 příspěvků
19. 2. 2019   #4
-
0
-

To by chtělo vidět ta data. Toto? 

>>> data = 'aa #1xx#1 bb #1yy$2 cc'
>>> re.findall(r'#1(.*?)(?:#1|\$2)', data)
['xx', 'yy']

*? je non-greedy match
(: je non-capturing group
| je "nebo"

Nahlásit jako SPAM
IP: 213.211.51.–
Andrej
~ Anonymní uživatel
38 příspěvků
19. 2. 2019   #5
-
0
-

#4 gna
mám text kde sú random znaky #1 a $2 a potrebujem aby mi vypísalo text medzi nimi, to čo si napísal mi vypísalo text, ktorý začína #1 a končí na $2 a #1, to čo si mi poslal tak mi nevypísalo text medzi #1 a #1 ale ostatok je dobre

Nahlásit jako SPAM
IP: 95.103.142.–
gna
~ Anonymní uživatel
817 příspěvků
19. 2. 2019   #6
-
0
-

vypísalo text, ktorý začína #1 a končí na $2 a #1
nevypísalo text medzi #1 a #1

To si nedovedu představit. Ukaž vzorek dat.

Nahlásit jako SPAM
IP: 213.211.51.–
Andrej
~ Anonymní uživatel
38 příspěvků
19. 2. 2019   #7
-
0
-

#6 gna

#1 text #1 text $2 text

#1 text $2 text #1 text

text #1 text $2 text

#1 text $2 text

#1 text $2 text #1 text $2 text #1 text $2 text

potrebujem aby vypísalo iba text, ktorý začína znakom #1 až po znak $2, to čo si napísal tak mi vypísalo text ,ktorý som zvýraznil ale potrebujem aby tam vypísalo aj ten čo som podčiarkol.

Nahlásit jako SPAM
IP: 95.103.142.–
gna
~ Anonymní uživatel
817 příspěvků
19. 2. 2019   #8
-
0
-

Aha. Tak to asi bude nejjednodušší to vzít od #1 do $2 a až pak rozdělit, pokud v tom je další #1. 

>>> data = """#1aa#1bb$2cc
... #1dd$2ee#1ff
... gg#1hh$2ii
... #1jj$2kk
... #1ll$2mm#1nn$2oo#1pp$2qq"""
>>> matches = re.findall(r'#1(.*?)\$2', data, re.DOTALL)
>>> print(matches)
['aa#1bb', 'dd', 'ff\ngg#1hh', 'jj', 'll', 'nn', 'pp']
>>> matches = [match.split('#1') for match in matches]
>>> print(matches)
[['aa', 'bb'], ['dd'], ['ff\ngg', 'hh'], ['jj'], ['ll'], ['nn'], ['pp']]
>>> matches = list(itertools.chain.from_iterable(matches))
>>> print(matches)
['aa', 'bb', 'dd', 'ff\ngg', 'hh', 'jj', 'll', 'nn', 'pp']
Nahlásit jako SPAM
IP: 213.211.51.–
Andrej
~ Anonymní uživatel
38 příspěvků
20. 2. 2019   #9
-
0
-

#8 gna
ok toto funguje, díky a keby som chcel teraz vypísať text, ktorý je medzi $2 a #1, skúsil som to prehodiť ale nič mi nevypísalo

Nahlásit jako SPAM
IP: 95.103.142.–
Andrej
~ Anonymní uživatel
38 příspěvků
20. 2. 2019   #10
-
0
-

#9 Andrej
tak vypísal som tie ktoré končia $2 a #1 ale chýbajú tam ešte tie, ktoré začínajú $2 ale končia koncom riadku

ako v prvom riadku " #1 text #1 text $2 text "

Nahlásit jako SPAM
IP: 95.103.142.–
gna
~ Anonymní uživatel
817 příspěvků
20. 2. 2019   #11
-
0
-

Jestli v tom je nějaká logika, tak mi ji vysvětli. Nakonec to vypadá, že jen chceš odstranit ty oddělovače.

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 21 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032019 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý