This commit is contained in:
2022-11-22 17:27:23 +01:00
parent 8dc4f59ff5
commit aa8cd49cb6
2 changed files with 72 additions and 1 deletions

63
Dienstag/User_modify.py Normal file
View File

@@ -0,0 +1,63 @@
#! /usr/bin/env python3
def read_file(path: str) -> "List of lines":
#f = open(path, 'r')
with open(path, 'r') as f:
# f.read(buflen) - binary read
# f.readline() - 1 Textzeile lesen -> str
# f.readlines - alle Textzeilen lesen ->str
# f ist gleichzeitig Iterator
# 1 möglichkeit
#lines = list(map(lambda s : s.rstrip(), f))
# 2 möflichkeit
lines = list(map(str.rstrip, f))
# 3 möglichkeit
#lines = []
#for line in f.readlines():
# lines.append(line.rstrip())
#f.close()
return lines
def parse_passwd_lines(line: str) -> "Dict of passwd details":
parts = line.split(':')
userdict = {
"username" : parts[0],
"uid" : parts[2],
"gid" : parts[3],
"gecos" : parts[4],
"home" : parts[5],
"shell": parts[6]
}
return userdict
def build_userlist(lines) -> "List of user dicts":
result = []
for line in lines:
result.append(parse_passwd_lines(line))
return result
def print_userlist_sorted_by_username(userlist):
#ruft für jedes Element key(elem) also e im Lambda-Ausdruck ist ein Element der Liste user dict
for user in sorted(userlist, key=lambda e: e['username'].lower()):
print(
user['username'],
user['uid'],
user['gecos'],
user['home'],
user['shell']
)
def print_userlist_sorted_by_uid(userlist):
pass
def main():
output_functions = {
'username': print_userlist_sorted_by_username,
'uid': print_userlist_sorted_by_uid,
}
outfunc = output_functions['username']
lines = read_file("/etc/passwd")
userlist = build_userlist(lines)
outfunc(userlist)
main()

View File

@@ -12,3 +12,11 @@ Wir können die integrierte Python-Funktion map() verwenden, um für jedes Eleme
numbers = [10, 15, 21, 33, 42, 55] numbers = [10, 15, 21, 33, 42, 55]
mapped_numbers = list(map(lambda x: x * 2 + 3, numbers)) mapped_numbers = list(map(lambda x: x * 2 + 3, numbers))
rstrip schneidet \n ab
schneidet hinten was ab bei einem String
mit helpdir