2017-12-01 6 views
0

私はプログラミングにはとても新しいので、今週のファイル処理で壁に当たっています。私は、次のプロンプトがあります。Python:固定長レコードの要素を見つけて変更する

固定長レコードを

あなたはファイル名P、FIRSTNAME F、 氏名L、および新しい誕生日B.

ロード固定長レコードファイルを渡されます

Pで、最初に のF、Lを検索し、Bに誕生日を変更してください。

ファイルを保存します。

入力が提供されています

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

マイコード:

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() 

これは明らかに動作していないが、私はホイールを回転しています。私はBを変える方法を理解する必要がありますが、そこには絶対に到達できません。

は、あなたのプログラムの出力が期待される出力と一致しませんでした

プログラム出力:これが出力されます。

あなたの出力:

アダム・スミス11111985Theodoreアンダーソン
03201990Montyビスケットバレル10181980Adamスミザーズ
10101960Ruthyアンダーソン06062010

予想される出力:

アダム・スミス11111985Theodoreアンダーソン
03201990Montyビスケットバレル10181980Adamスミザーズ
00000000Ruthyアンダーソン06062010

私たちは引数がプログラムに渡されて見ることができればそれが役立つだろうB.

+0

サンプルのテストデータを教えてください。 –

+0

期待される出力をここで正しくフォーマットしていますか?レコードは異なる行にあるわけではありません。 –

+0

フォーマットが編集されたので、今すぐ一致します。私は誕生日をBに置き換える方法を理解できません。 – Logan

答えて

0

に誕生日を変更する方法を見つけ出すことはできません。あなたがテストしているとき
はまた、あなたのループでは、:
if F and L not in data
あなたが実際に言っている:
if F != None and L not in data
は、代わりにこれを試してみてください:
if F not in data and L not in data

0

をこの行は、一つの問題のようです:data.replace(B,B) BBに置き換えるとはどういう意味ですか?

また、data.append(i)とは何ですか?読み込んだデータの最後に整数を追加していますか?わかりません。

私はお手伝いしたいと思いますが、あなたが何をしているのか分かりません。コードをオンラインでどこにでも投稿して共有しているなら、そのリンクを送信してください。私が要求したときに、読んでいるファイルと渡されているサンプルデータを共有する必要があるので、何が起こっているのか分かります。

関連する問題