2017-12-01 1 views
0

Ich bin sehr neu in der Programmierung, und habe eine Wand mit Datei-Handling in dieser Woche getroffen. Ich habe folgende Aufforderung:Python: Finden und Ändern von Elementen in fester Länge Datensätze

Fixed Length Aufzeichnungen

Sie den Dateinamen P, Vorname F, Nachname L und einen neuen Geburtstag B.

Legen Sie die feste Länge Aufzeichnungsdatei übergeben werden Suchen Sie in P nach F, L in der ersten und ändern Sie Geburtstag auf B.

Speichern Sie die Datei.

Die Eingänge sind vorgesehen:

import sys 
P= sys.argv[1] 
F= sys.argv[2] 
L= sys.argv[3] 
B= sys.argv[4] 

Mein Code:

file1 = open(P, 'r') 

data = file1.read() 


for i in range(0, len(data)): 
    if F and L not in data: 
    data.append(i) 
    if F and L in data: 
    data.replace(B,B) 


file1 = open(P, 'w') 
file1.write(data) 
file1.close() 

Dies ist offensichtlich nicht funktioniert, aber ich bin Spinnräder. Ich muss herausfinden, wie ich B ändern kann, aber ich komme nicht ganz dorthin. Dies ist die Ausgabe:

Programm Ausgabe

Ihr Programm Ausgang die erwartete Ausgabe nicht übereinstimmten.

Ihre Ausgabe:

Adam Smith 11111985Theodore Anderson
03201990Monty Biscuit-Barrel 10181980Adam Smithers
10101960Ruthy Anderson 06062010

Erwartete Ausgabe:

Adam Smith 11111985Theodore Anderson
03201990Monty Biscuit-Barrel 10181980Adam Smithers
00000000Ruthy Anderson 06062010

ich kann nicht herausfinden, wie man den Geburtstag B.

+0

Geben Sie mir einige Beispieltestdaten. –

+0

Sind Sie sicher, dass Sie die erwartete Ausgabe korrekt formatiert haben? Die Aufzeichnungen sind nicht auf verschiedenen Linien, so dass es schwierig ist, zu helfen. –

+0

Ich habe das Format bearbeitet, damit sie jetzt übereinstimmen. Ich kann nicht herausfinden, wie man den Geburtstag durch B ersetzt. – Logan

Antwort

0

Es würde helfen, ändern, wenn wir die Argumente übergeben werden, um das Programm sehen können.
Auch in der Schleife, wenn Sie testen für:
if F and L not in data
Sie sagen, eigentlich:
if F != None and L not in data
dies stattdessen versuchen:
if F not in data and L not in data

0

Diese Linie scheint ein Problem zu sein: data.replace(B,B) Was bedeutet es, B durch B zu ersetzen?

Und was macht data.append(i)? Sie fügen eine Ganzzahl am Ende der gelesenen Daten hinzu? Ich verstehe nicht.

Ich würde gerne helfen, aber ich verstehe nicht, was Sie tun.Wenn Sie den Code irgendwo online veröffentlicht haben und ihn bequem teilen möchten, senden Sie einen Link dorthin. Auch wenn ich angefordert habe, müssen Sie uns die Datei, die Sie gerade lesen, und einige Beispieldaten, die weitergegeben werden, mitteilen, damit wir sehen können, was passiert.

Verwandte Themen