Add solutions for uebungen for files
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
This commit is contained in:
		
							parent
							
								
									205c83790c
								
							
						
					
					
						commit
						dd36861233
					
				
							
								
								
									
										137
									
								
								loesungen/dateien.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								loesungen/dateien.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,137 @@
 | 
			
		||||
# Aufgabe 1
 | 
			
		||||
 | 
			
		||||
fp = open("../uebungen/employee_skills.txt", encoding="utf-8")
 | 
			
		||||
contents = fp.read()
 | 
			
		||||
fp.close()
 | 
			
		||||
 | 
			
		||||
print("Länge:", len(contents))
 | 
			
		||||
 | 
			
		||||
print("-" * 50)
 | 
			
		||||
 | 
			
		||||
# Alternativ:
 | 
			
		||||
 | 
			
		||||
with open("../uebungen/employee_skills.txt") as fp:
 | 
			
		||||
    contents = fp.read()
 | 
			
		||||
 | 
			
		||||
print(contents)
 | 
			
		||||
 | 
			
		||||
print("-" * 50)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Aufgabe 2
 | 
			
		||||
 | 
			
		||||
with open("../uebungen/employee_skills.txt") as fp:
 | 
			
		||||
    i = 0
 | 
			
		||||
    for line in fp:
 | 
			
		||||
        line = line.strip()
 | 
			
		||||
 | 
			
		||||
        if not line:
 | 
			
		||||
            continue
 | 
			
		||||
 | 
			
		||||
        i += 1
 | 
			
		||||
 | 
			
		||||
print("Nicht leere Zeilen:", i)
 | 
			
		||||
 | 
			
		||||
print("-" * 50)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Aufgabe 3
 | 
			
		||||
 | 
			
		||||
employees = []
 | 
			
		||||
with open("../uebungen/employee_skills.txt") as fp:
 | 
			
		||||
    for line in fp:
 | 
			
		||||
        if not line.strip():
 | 
			
		||||
            continue
 | 
			
		||||
 | 
			
		||||
        name = line.split(":")[0].strip()
 | 
			
		||||
        employees.append(name)
 | 
			
		||||
 | 
			
		||||
employees.sort()
 | 
			
		||||
 | 
			
		||||
for name in employees:
 | 
			
		||||
    print(name)
 | 
			
		||||
 | 
			
		||||
print("-" * 50)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Aufgabe 4
 | 
			
		||||
 | 
			
		||||
employee_salaries = {}
 | 
			
		||||
with open("../uebungen/salaries.txt") as fp:
 | 
			
		||||
    for line in fp:
 | 
			
		||||
        if not line.strip():
 | 
			
		||||
            continue
 | 
			
		||||
 | 
			
		||||
        name, salary = line.strip().split(":", 1)
 | 
			
		||||
        name = name.strip()
 | 
			
		||||
        salary = int(salary.strip())
 | 
			
		||||
        employee_salaries[name] = salary
 | 
			
		||||
 | 
			
		||||
print("Min. Gehalt:", min(employee_salaries.values()))
 | 
			
		||||
print("Max. Gehalt:", max(employee_salaries.values()))
 | 
			
		||||
 | 
			
		||||
print("-" * 50)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Aufgabe 5
 | 
			
		||||
 | 
			
		||||
employee_skills = {}
 | 
			
		||||
with open("../uebungen/employee_skills.txt") as fp:
 | 
			
		||||
    for line in fp:
 | 
			
		||||
        if not line.strip():
 | 
			
		||||
            continue
 | 
			
		||||
 | 
			
		||||
        name, skills = line.strip().split(":", 1)
 | 
			
		||||
        name = name.strip()
 | 
			
		||||
        skills = [item.strip() for item in skills.split(",")]
 | 
			
		||||
        employee_skills[name] = skills
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Aufgabe 6
 | 
			
		||||
 | 
			
		||||
employees = {}
 | 
			
		||||
 | 
			
		||||
for key in employee_salaries:
 | 
			
		||||
    salary = employee_salaries.get(key, 0)
 | 
			
		||||
    skills = employee_skills.get(key)
 | 
			
		||||
    employees[key] = {"skills": skills, "salary": salary}
 | 
			
		||||
 | 
			
		||||
print("-" * 50)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Aufgabe 6
 | 
			
		||||
 | 
			
		||||
employee_salaries = {}
 | 
			
		||||
try:
 | 
			
		||||
    with open("../uebungen/salaries-errors.txt") as fp:
 | 
			
		||||
        for i, line in enumerate(fp):
 | 
			
		||||
            # remove whitspace at satrt / end of line
 | 
			
		||||
            line = line.strip()
 | 
			
		||||
 | 
			
		||||
            # ignore empty / whitespace-only lines
 | 
			
		||||
            # and comment lines
 | 
			
		||||
            if not line or line.startswith("#"):
 | 
			
		||||
                continue
 | 
			
		||||
 | 
			
		||||
            try:
 | 
			
		||||
                name, salary = line.strip().split(":", 1)
 | 
			
		||||
            except ValueError as exc:
 | 
			
		||||
                print(f"Warning: could not parse line {i+1}: {exc}")
 | 
			
		||||
            else:
 | 
			
		||||
                name = name.strip()
 | 
			
		||||
                try:
 | 
			
		||||
                    salary = salary.strip()
 | 
			
		||||
                    salary = salary.strip("$€")
 | 
			
		||||
                    salary = int(salary)
 | 
			
		||||
                except (ValueError, TypeError) as exc:
 | 
			
		||||
                    print(f"Warning: could not parse data on line {i+1}: {exc}")
 | 
			
		||||
                else:
 | 
			
		||||
                    employee_salaries[name] = salary
 | 
			
		||||
except FileNotFoundError as exc:
 | 
			
		||||
    print(f"Could not open file: {exc}")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
print("Min. Gehalt:", min(employee_salaries.values()))
 | 
			
		||||
print("Max. Gehalt:", max(employee_salaries.values()))
 | 
			
		||||
 | 
			
		||||
print("-" * 50)
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user