私はリストにいくつかの値を入れてゲームの設定に使用しようとしています。私は、テキストファイルには、item_index.txtと内容を求めている nは新しい行に前の文字を置いています
:
<number>: <name>
私のコードはこれです:
file = open("item_index.txt", "r", encoding="utf8")
with open("config.cfg", "w") as config:
lines = file.readlines()
lines.sort()
config.write('"Paints"\n{\n')
for skin in lines:
skin = skin.replace(": ",":")
new_skin = skin.split(":")
config.write(' "' + new_skin[1] + '"' + '\n')
config.write(' {\n')
config.write(' "paint" "' + new_skin[0] + '"\n')
config.write(' "wear" "0.000000000000000001"\n')
config.write(' "quality" "3"\n')
config.write(' }\n')
config.write("}")
理論的にはこのような設定記述する必要があります:
"<name>"
{
"paint" "<number>"
"wear" "0.000000000000000001"
"quality" "3"
}
を
何らかの理由でこれを出力しています:
"<name>
"
{
"paint" "<number>"
"wear" "0.000000000000000001"
"quality" "3"
}
これを引き起こす原因は誰にも分かりますか?私の推測では、それは後にある\ nと関係があるということですが、config.writeを1つだけ使用してそこにすべてを置いたようなことを試した後、完全に無知です。これがあいまいなのならお手数です。あなたの質問については、あなたの問題はあなたがソースファイルからの読み取りの各行の末尾に"\n"
を持っているということです
してください、Pythonの文字列クラスは、文字列に値を補間するためのカップルの異なる方法、および2つのミニlanaguagesを持っています。 **あなたがしなければならない最後のことは、文字列closignをアセンブルして引用符を開き、 "+"で連結しようとすることです。また、 'write'メソッドをいくつか呼び出すことも少なくなります。サポート、そしてそれを好きでない人のためのクロスライン文字列連結。 – jsbueno
@jsbueno:正確には、 '%'ベース、 '{}'ベース、 '$'ベースの3種類の補間方法があります。 – GingerPlusPlus
また、なぜJSONですか? – GingerPlusPlus