Znajdowanie max i min w pliku dat, i podawanie czasu

Na szybko napisane dziadostwo, które spełnia swoje zadanie.

#!/usr/bin/env python
#-*- coding: utf-8 -*-
 
import os
 
def tworzCyferke(s):
	try:
		wyniczek = int(s)
	except ValueError:
		wyniczek = float(s.replace(',','.'))
	return wyniczek
 
def robCoTrzeba(pliki):
	wynik = list()
	min = 0
	max = 0
	mintime = 0.0
	maxtime = 0.0
	for n in range(len(pliki)):
		print pliki[n],
		wejscie = file(pliki[n])
		linie = wejscie.readlines()
		for m in range(len(linie)-1):
			obecne = linie[m+1].split()
			if (m == 0):
				min = tworzCyferke(obecne[2])
				max = tworzCyferke(obecne[2])
				mintime = tworzCyferke(obecne[1])
				maxtime = tworzCyferke(obecne[1])
			else:
				if (min > tworzCyferke(obecne[2])):
					min = tworzCyferke(obecne[2])
					mintime = tworzCyferke(obecne[1])
				if (max < tworzCyferke(obecne[2])):
					max = tworzCyferke(obecne[2])
					maxtime = tworzCyferke(obecne[1])
		print ";",
		print min,
		print ";",
		print str(mintime).replace(".",","),
		print ";",
		print max,
		print ";",
		print str(maxtime).replace(".",",")
 
print "Nazwa_pliku; Minimum; Czas_Minimum; Maksimum; Czas_Maksimum"
os.chdir("dluga cewka")
robCoTrzeba(os.listdir("."))
os.chdir("../iloscie zwojow")
robCoTrzeba(os.listdir("."))
os.chdir("../kształt")
robCoTrzeba(os.listdir("."))

Wersja dla pliku z pomiarami w kolumnach

#!/usr/bin/env python
#-*- coding: utf-8 -*-
 
import os
 
def tworzCyferke(s):
	try:
		wyniczek = int(s)
	except ValueError:
		wyniczek = float(s.replace(',','.'))
	return wyniczek
 
def robCoTrzeba(pliki):
	#wynik = list()
	iloscRzeczy = 0
	for n in range(len(pliki)):
		print pliki[n]
		wejscie = file(pliki[n])
		linie = wejscie.readlines()
		iloscRzeczy = len(linie[1].split())-2
		min = range(iloscRzeczy)
		max = range(iloscRzeczy)
		mintime = range(iloscRzeczy)
		maxtime = range(iloscRzeczy)
		for m in range(len(linie)):
			obecne = linie[m].split()
			if (m == 0):
				for o in range(len(obecne)-2):
					min[o] = tworzCyferke(obecne[o+2])
					max[o] = tworzCyferke(obecne[o+2])
					mintime[o] = tworzCyferke(obecne[1])
					maxtime[o] = tworzCyferke(obecne[1])
			else:
				for o in range(len(obecne)-2):
					if (min[o] > tworzCyferke(obecne[o+2])):
						min[o] = tworzCyferke(obecne[o+2])
						mintime[o] = tworzCyferke(obecne[1])
					if (max[o] < tworzCyferke(obecne[o+2])):
						max[o] = tworzCyferke(obecne[o+2])
						maxtime[o] = tworzCyferke(obecne[1])
		for m in range(iloscRzeczy):
			print m+1,
			print max[m],
			print str(maxtime[m]).replace(".",","),
			print min[m],
			print str(mintime[m]).replace(".",",")
 
print "nr max tmax min tmin"
os.chdir("wyniki2")
pliczki = os.listdir(".")
pliczki.sort()
robCoTrzeba(pliczki)
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki