私が作業しているPythonスクリプトがあります。これはローカルの気象条件とネットワーク情報を.bashrcファイルに追加します。 2個のバグを除いてすべてが期待どおりに動作します。Python3 - ファイルから最後の(n)行を削除し、新しいデータを追加します。
(「エコー[ローカルの気象]::」、66.9、「F」最初の代わりに古いデータを削除して新しいを追加するには、ちょうどこのような新しいデータを追加します'、' with '、' overcast clouds ') ('あなたのパブリックIPは: '、' xxxx '('エコー[ローカル天気]: '、66.9、' F '、' with '、'そう「、 『XXXX』)
と第二私は(括弧、コンマ、等。)例えば、印刷されたテキストから書式設定をドロップする必要があります:「) (」エコー[あなたのパブリックIPがあります]文字列は次のように表示されます。
どんより雲66.9Fエコー[公衆IP]:
エコー[ローカルの気象] xxxxの
ここでは、私のスクリプトのファイル操作部分である:
with open('HOME/.bashrc', 'a') as f:
w = "echo [Local weather]:", wx_t,"F", "with", wx_c
i = "echo [Your public IP is]:", ip
out = [str(w), str(i)]
f.write('\n'.join(out)[0:-3])
ので、私は思いましたそのf.write('\n'.join(out)[0:-3])
はファイルの最後の3行を削除しますが、明らかに文字列の最後の3文字を削除します。私が試みていることを達成するためには、何を変える必要がありますか? f.write()
の代わりにf.writelines()
を使用する必要がありますか?
へようこそ[ホスト名]あなたはユーザーとしてログインしている[some_user]
[現地時間]::2017月3月20日8時28分32秒CDT期待される結果は、最終的には次のようになります。 。
[ローカルの気象]:晴天と66.56 F
[ローカルIP]:192.168.xxの[公開IP]:事前に、これは私がapologiz重複問題であるかのxxxxの
感謝e。私は解決策を探す際に精通していると感じましたが、失敗しました。
UPDATE: だから私は
w = "echo [Local weather]: " + str(wx_t) + " F, with " + wx_c
とf.writelines()
代わりのf.write()
を使用する
w = "echo [Local weather]:", wx_t,"F", "with", wx_c
を変更することで、フォーマットを修正しました。また、DeepSpaceが提案したようにf.close()を削除しました
'with'を使用しているので、' f.close() 'を呼び出す必要はありません。 – DeepSpace
ありがとうございます。私はまだかなりPythonに新しいし、私はそれを安全にプレイするように思った –