Ich speichere Daten aus einer Datei in einer Liste, um sie auf Muster zu analysieren. Meine Absicht ist es, eine TXT- oder CSV-Datei lesen zu können. Ich habe Schwierigkeiten, einen Weg zu finden, die Informationen aus der ursprünglichen Liste, die aus der Datei gespeichert ist, zu analysieren, um ganze Zahlen in dieser Liste zu identifizieren.
Ich habe die eingebaute Methode .isdigit () ausprobiert, aber das gibt False zurück, obwohl die 'Daten'-Liste Zahlen, Kommas und einige Zeichenfolgen enthält. Die 'Daten'-Liste enthält keine Zeichenfolgennummern, sondern nur ganze Zahlen.
Es funktioniert wie erwartet, bis die Funktion noCheck nur den ValueError ausgibt.
data = []
IntData = []
def analyse():
try:
openfile = input('Enter file path: ')
with open(openfile) as f:
read = f.read()
data.append(read)
print(data)
next = input('Press any Key to continue..')
if next == '':
noCheck()
except FileNotFoundError:
print('No File Found')
def noCheck():
for number in data:
try:
IntData.append(int(number))
print(IntData)
except ValueError:
print('No numbers found')
analyse()
Jede Hilfe wird sehr geschätzt
EDIT: Dies sind die Daten in der txt-Datei:
08,30,34,44,45,57\n09,18,20,42,43,46\n14,19,30,45,48,58\n02,04,17,28,37,45\n14, 18,23,28,36,37\n05,08,40,41,43,45\n18,25,29,32,35,58\n04,10,11,17,53,54\n24,30, 44,50,56,57
Ihre Frage fragt, ob sich in den gelesenen Zeilen ganze Zahlen befinden. Ihr Code wandelt die Zeilen derzeit nur in Ganzzahlen um, anstatt zu prüfen, ob es sich um Ganzzahlen handelt.
Ich weiß nicht, wie Ihre Datei aussieht, aber Sie können Folgendes tun:
for line in data:
if(isinstance(line, int)):
IntData.append(line)
Sie möchten auch den Inhalt von IntData ganz am Ende des Lesens Ihrer Datei überprüfen, anstatt nach jeder Zeile eine Ausnahme auszulösen.
Sie können einfach hinzufügen:
if (len(IntData) == 0):
print("No integers")
else:
print("There are integers")
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen