我试图为列表取一些值并将它们用于游戏配置,但是当我写入配置时它没有使用它应该的布局。
我有一个名为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并将整个内容放在那里之后,我完全无能为力。对不起,如果这是模糊的。
答案 0 :(得分:1)
您需要从new_skin的末尾删除换行符:
new_skin = skin.strip('\n').split(":")
答案 1 :(得分:0)
至于你的问题,你的问题是你在源文件读取的每一行末尾都有"\n"
- 只需在使用其值之前将其删除 - new_skin[1].strip()
而不是{ {1}}
但是,为了您的利益,请在Python中查看数十种handlign和插入字符串的方法 - 您只是为可读性和可维护性做了最糟糕的事情。
new_skin[1]