Python:cteni souboru do pole – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Python:cteni souboru do pole – Python – Fórum – Programujte.comPython:cteni souboru do pole – Python – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
kaja090
Duch
7. 3. 2015   #1
-
0
-

Zdravím, potrebovala bych pomoc s jedním ukolem, mam načíst soubor do pole, napadlo mne tohle:

def cti(jmeno_souboru):
    with open(jmeno_souboru) as soubor:
        radek = soubor.read().split('\n')
        print(radek)

soubor vypadá takhle : 

9
7,xqz,False
(prázdni řádek)
2.33

a muj výstup je: ['9', '7,xqz,False', '', '2.33'] ale potřebuju aby to vypadalo takhle :
[9, [7, 'xqz', False], '', 2.33] , vubec si s tím nevím rady. Dekuju
 

Nahlásit jako SPAM
IP: 77.48.221.–
Reklama
Reklama
sleepy
~ Anonymní uživatel
422 příspěvků
7. 3. 2015   #2
-
0
-

Hmm to je troska problem, ale mozes checknut ci na danom riadku nie su ciarky co by znamenalo ze sa jedna o dalsie pole. Potom poterebujes zistit ci sa jedna o string, int, float alebo boolean to mozes bud regularnymi vyrazmi alebo try-exceptnut castnutie pomocou classov: bool(), float(), int(). Tu je problem hlavne v rozdiele medzi int a float, pouzil by som regex: \d+ => ide o int. 

def read_file(file_name):
	lines = []
	with open(file_name) as f:
		for line in f:
			lines.append(cast(line))


def cast(value):
	if is_array(line):
		b = []
		for v in value.split(','):
			b.append(cast(v))
	try:
		b = bool(value)
	except:
		try:
			if re.match(r'\d+', value):  # treba upravit vstupny string mozno aj regex
				b = int(value)
			else:
				b = float(value)
		except:
			b = value
	return b

def is_array(line):
	return ',' in line # ak sa nachadzaju ciarky ide o pole
				

Tento kod nie je kompletny, treba ho opravit. Ale myslienka tam je.

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

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×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, 29 hostů

 

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