我試圖爲列表取一些值並將它們用於遊戲配置,但是當我寫入配置時,它沒有使用它應該使用的佈局。使用 n將前一個字符放在一個新行上
我已文本文件名爲item_index.txt和內容:
<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並將整個東西放在那裏之後,我完全無能爲力。對不起,如果這是模糊的。
請,Python的string類有幾個不同的方法,和兩個小lanaguages內插字符串的值。你應該做的最後一件**事情是試圖組裝一個字符串closign和打開引號並與「+」連接 - 甚至更少地調用「write」方法 - 因爲該語言也有多行字符串支持和交叉字符串連接,誰不喜歡那樣。 – jsbueno
@jsbueno:準確地說,三種插值方法 - 基於'''',''}'和''''的。 – GingerPlusPlus
另外,爲什麼不是JSON? – GingerPlusPlus