このコードを利用してファイルの中の在庫を変化させたいのですが。変化させる前とさせた後とのファイルへの出力の形が変わってしまいます。
そのままの形を保ち書き換えたいです。
partID = BR001
Python
file_name = "Parts_Inventory3.txt" data_line = [] with open(file_name) as f: data_lines = f.read().splitlines() data_line.append(data_lines) SID = input("enter partID:") for data_line in data_lines : if data_line.find(SID) >= 0: print(data_line) new = input ("enter new quantity:") data = "".join(data_line) lines = "".join(data_lines) lines = lines.replace(data, SID +" : "+ new) with open(file_name ,"w") as f: f.write(lines)
コードのインデントが統一していないのと、そもそもコードを実行しても変化後になりません。再確認して修正をお願いします。
すみません。誤ったコードを載せてしまいました。
記載したコードをご自分で実行して、問題が再現するか、確認いただけますでしょうか?
・そのままだと NameError: name 'lines' is not defined が出ます。
・また上記を解決しても、BR00? を入力すると、for文直下のifが全てFalseなので、アウトプットは空ファイルになります。
・インデントも合っていません。
・そのままだと NameError: name 'lines' is not defined が出ます。
出ませんでした。
・また上記を解決しても、BR00? を入力すると、for文直下のifが全てFalseなので、アウトプットは空ファイルになります。
BR001と入れました
partID = BR00?
と質問文に記載されています。
すみません。?の部分にIDの数値パートを入れたという意味です。わかりづらくて申し訳ないです
回答2件
あなたの回答
tips
プレビュー