Ich habe Mühe herauszufinden, wie ich einen Block von Zeilen aus einer Datei löschen sollte. Unten ist der CodePython löscht einen Block von Zeilen aus einer Datei
#!/usr/bin/python
import argparse
import re
import string
##getting user inputs
p = argparse.ArgumentParser()
p.add_argument("input", help="input the data in format ip:port:name", nargs='*')
args = p.parse_args()
kkk_list = args.input
def printInFormat(ip, port, name):
formattedText = '''HOST Address:{ip}:PORT:{port}
mode tcp
bind {ip}:{port} name {name}'''.format(ip=ip,
port=port,
name=name)
textWithoutExtraWhitespaces = '\n'.join([line.strip() for line in formattedText.splitlines()])
# you can break above thing
# text = ""
# for line in formattedText.splitlines():
# text += line.strip()
# text += "\n"
return(formattedText)
#####here im writing writing the user inoput to a file and it works great.
#with open("file.txt", "a") as myfile:
# for kkk in kkk_list:
# ip, port, name = re.split(":|,", kkk)
# myfile.write(printInFormat(ip, port, name))
###### here is where im struggling.
for kkk in kkk_list:
ip, port, name = re.split(":|,", kkk)
tobedel = printInFormat(ip, port, name)
f = open("file.txt", "r+")
d = f.readlines()
f.seek(0)
if kkk != "tobedel":
f.write(YY)
f.truncate()
f.close()
Wie Sie sehen können, füge ich die file.txt mit Benutzereingaben an. (Format: IP: Port: Name). Datei wird im folgenden Einträge enthalten, wenn das Skript excuted als ./script.py 192.168.0.10:80:string 192.168.0.10:80:string
Host Address:192.168.0.10:PORT:80
mode tcp
bind 192.168.0.10:80 abc
Host Address:10.1.1.10:PORT:443
mode tcp
bind 10.1.1.10:443 xyz
Jetzt möchte ich die Zeile (n) aus der Datei löschen. txt, wenn die Benutzereingabe auf die gleiche Weise erfolgt. Wenn der obige Code ausgeführt wird, passiert nichts. Ich bin ein Anfänger und wirklich dankbar, wenn Sie mir helfen zu verstehen. Diese Frage bezieht sich auf python multiple user args
Sie möchten was löschen? Kannst du etwas erklären? Kann mit dem gleichen Beispiel sein. Es ist nicht wirklich klar aus deinem Code. – arunk2
@ArunKumar Ich versuche, diese 2 Blöcke im zweiten Codefenster zu löschen. Wenn das Skript mit Argumenten: : ausgeführt wird, sollte es die entsprechenden Einträge aus file.txt löschen. Vielen Dank. –
bindo