我有一个像这样的文本文件:
[0.52, '1_1man::army'], stack
[0.45, '3_3man::army'], flow
[0.52, '1_1man::army'], testing
[0.52, '2_2man:army'], expert
如何加载到文件中并打印
的所有值'1_1man::army', '3_3man::army', '1_1man::army' and '2_2man:army'
我的代码:
text = open("text.txt", "r").readlines()
print(text[1])
然后实施一些好人分享的解决方案。我无法使用他们的代码,因为我现在拥有的文件与我发布的文件不同(我想尝试这个新示例)。
How can I arrange the list according to similar item in certain location
答案 0 :(得分:1)
更简单的方法是制作一个json文件。 Python是内置在json阅读库中的优秀库。这就是json的样子:
{
"1_1man::army": "stack",
"3_3man::army": "flow",
"1_1man::army": "testing",
"2_2man::army": "expert",
}
您将输入此文件并将文件扩展名从.txt更改为.json。您可以这样阅读:
import json
with open("YourText/JsonFileHere.json") as f:
data = json.load(f)
// Get first 1_1man::army value
data[0]["1_1man::army"]
// Get 3_3man::army value
data["3_3man::army"]
// Get second 1_1man::army value
data["1_1man::army"]
// Get 1_1man::army value
data[1]["1_1man::army"]
// in order to add things to the json do this:
data["What you want the new key to be called"] = "What the value is"
让我知道这是否有帮助!
答案 1 :(得分:1)
如果该格式在整个文件中都是严格的。您可以简单地使用func roundTo(n float64, decimals uint32) float64 {
return math.Round(n * float64(decimals)) / float64(decimals)
}
提取引号之间的那些值
roundTo(4.2655, 1) // 4.3
roundTo(4.3454, 3) // 4.345
split()
会在看到with open("text.txt", "r") as file:
for line in file:
print (line.split("'")[1])
时将字符串切成薄片。在您的情况下,每一行都会切成3个元素的列表:
line.split("'")
您需要中间一个索引为'
的索引。因此[0.52,
1_1man::army
], stack
可以为您提供确切的信息。