を行うことができます私は、Python、「Icecastのサーバー」上でスクリプトを書かれている、と私はこのような「/etc/icecast2/icecast.xml」にいくつかの文字列を変更:Pythonスクリプトどのようにそれが短い
import os,sys,re
def ices2():
changedir=open(pathh + "icecast3.xml", "w")
data=open("/etc/icecast2/icecast.xml").read()
changedir.write(re.sub("<source-password>hackme</source-password>","<source-password>123</source-password>" % x,data))
changedir.close()
ices2()
def ices1():
changedir1=open(pathh + "icecast2.xml", "w")
data=open(pathh + "icecast3.xml").read()
changedir1.write(re.sub("<relay-password>hackme</relay-password>", "<relay-password>123</relay-password>" % x,data))
changedir1.close()
os.remove(pathh + "icecast3.xml")
ices1()
def ices():
changedir2=open("/etc/icecast2/icecast.xml", "w")
data=open(pathh + "icecast2.xml").read()
changedir2.write(re.sub("<admin-password>hackme</admin-password>","<admin-password>123</admin-password>" % x,data))
changedir2.close()
os.remove(pathh + "icecast2.xml")
ices()
。しかし、それはスクリプトのためには長すぎます。どのように私はそれを短縮することができますか?私は1つのファイルでいくつかの変更を行い、変更を加えてそれを開いて、失われたデータなしで閉じる必要があります。私はそれが1つの機能で実行できることを知っていますが、それを行う方法はわかりません。
def ices():
changedir=open(pathh + "icecast3.xml", "w")
data=open("/etc/icecast2/icecast.xml").read()
changedir.write(re.sub("<source-password>hackme</source-password>","<source-password>123</source-password>",data))
changedir1.write(re.sub("<relay-password>hackme</relay-password>", "<relay-password>123</relay-password>",data))
changedir2.write(re.sub("<admin-password>hackme</admin-password>","<admin-password>123</admin-password>",data))
changedir.close()
私は1つの関数にそれをやったと上のものより私のスクリプトの短い:
は、私はこのような1つの関数に3つの変更を必要としています。しかし、それは間違っている私は
changedir=open(pathh + "icecast3.xml", "w")
data=open("/etc/icecast2/icecast.xml").read()
ここ
私は新しいファイル「pathh + 『icecast3.xml』(pathh- /ホーム/ユーザー/ダウンロード)を作成し、それを正しく行う必要がありますが、私は、ファイル開く必要があります。
をあなたが一つにそれらを結合することができますので、それを読んで、同じファイルに変更を書き込む"/etc/icecast2/icecast.xml"
...。
私はファイルicecast.xmlを持っています。私はそれに3文字列を変更する必要があります。 1つの関数で3つのものを変更する方法はわかりません。私はファイルを開いていくつかの変更を行い、それらに書きたいと思う。 – nosensus
ああ、私はそのような質問を理解していませんでした。私はしばらく編集しようとします。 – rplnt
私の英語は悪いです。申し訳ありません、私は質問を変更します。 – nosensus