#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # dda.py import sys from glob import glob # # Eingabe # print ("""Welche(r) Rechner/Drucker soll(en) modifiziert werden. Mehrere Rechner mit Leerzeichen trennen. \n\n """) devices = input("Eingabe der Geräte Namen: ").lower() macadr = input("Optional Eingabe der MAC Adresse in der dazugehörigen Reihenfolge: ").upper() while True: try: vlan = input("Eingabe der VLAN Nr.: ") vlan = int(vlan) break except ValueError: print("Keine Nummer! Bitte nur Zahlen eingeben ...") #print("Eingegeben wurden folgende Geräte:", devices) #print("Die dazugehörigen MAC-Adressen:", macadr) #print("für das VLAN:", vlan) lines = [] """ lines = [ [], [], [], ... ] """ lines_ip = [] # # Lesen # vlan_fn = 'vlans/vlan0{}.in'.format(vlan) with open(vlan_fn, 'r') as vlanconf: for line in vlanconf: #print(line.split(),"\n\n\n") l_elems = line.split() #print(l_elems) #lines_ip.append(l_elems[2]) #print(lines_ip) #sys.exit(0) lines.append(line) lines_ip.append(l_elems[2]) #print(lines_ip) #sys.exit(0) zaehler = 1 new_ips = False while zaehler < 254: ip = "172.16.{[0]}.{}".format(str(vlan), zaehler) #print(ip) if ip not in lines_ip: eingabeliste = "{} {} {}\n".format(devices, macadr, ip) lines.append(eingabeliste) new_ips = True break zaehler += 1 if new_ips: with open(vlan_fn, 'w') as vlanconf: for line in lines: vlanconf.write(line) print("->", vlan_fn) # # Remove - am beginn verschieben, erst alles alte rauslöschen dann neuer Eintrag # verzei = glob("vlans/*") print(verzei) ### Hinter for-Schleife Funktion erstellen, die dann immer aufgerufen wird, solange Dateien da sind. for vlandat in verzei: with open((vlandat), 'r') as vlandatei: for line in vlandatei: #l_vlandatei = line.split() #del(line.startswith(devices)) if not line.startswith(devices): print(line) #entferntelines = "{}".format(line) #print(entferntelines) #print(line, end="") #entferntelines = "{}".format(line).rstrip() #print(entferntelines) #for vlandat in verzei: # with open((vlandat), 'w') as vlandatei: # vlandatei.write(entferntelines)