如何在python中加载文本文件?

时间:2018-08-28 00:03:08

标签: python text

我有一个像这样的文本文件:

[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

2 个答案:

答案 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 可以为您提供确切的信息。