将文件转换为字典
Convert file to dictionary
我想要一个包含所有文本的文本文件,它在程序中表示,以便将我的程序翻译成另一种语言。我可以使用普通列表,但在查看代码时很难看出将代表哪些文本。
文本文件:
here is the text represented in the running program
inside the code you cant say whats written right here
代码:
language_file = open("file.txt", "r", encoding="utf-8")
language_list = storage_file.readlines()
print(language_list[1])
希望你能理解我的问题^
我不想使用列表,而是想使用字典。然后文件应该看起来像这样:
"some_shortcut_to_remind_me_whats_happening": "Text in another language"
"another_shortcut": "Now I know whats written right here"
代码可能如下所示:
print(language_dict["another_shortcut"])
但我不知道如何从文本文件中获取字典
为什么不直接将文件保存在 json 中?它仍然很容易阅读,您也可以在一个文件中包含多种语言:
示例:
File.json 包含:
{
"en":
{
"some_shortcut_to_remind_me_whats_happening": "Text in another language",
"another_shortcut": "Now I know whats written right here"
}
}
您的代码将类似于:
import json
with open("file.json", "r") as f:
json = json.load(f)
print(json["en"]["some_shortcut_to_remind_me_whats_happening"])
如果您不想使用外部库并按如下格式设置文件格式:
key1: value1
key2: value2
.....
您可以使用:
with open(filename, 'r') as f:
my_dict = dict((key, value.strip())
for key, value in (line.split(':') for line in f))
您描述的内容看起来像一个 CSV 文件,其中分隔符是 :
并使用 "
作为引号(默认)。您可以通过这种方式轻松构建查找 table:
language_dict = {}
with open("file.txt", "r", encoding="utf-8", newline='') as language_file:
reader = csv.reader(language_file, delimiter=':', skipinitialspace=True)
for row in reader:
language_dict[row[0]] = row[1]
注意:此语法仅对 Python3 有效,不幸的是,用于 csv 的文件的打开在 Python2 和 Python3 之间是不同的。在 Python2 中,第一行是:
with open("file.txt", "rb") as language_file:
我想要一个包含所有文本的文本文件,它在程序中表示,以便将我的程序翻译成另一种语言。我可以使用普通列表,但在查看代码时很难看出将代表哪些文本。
文本文件:
here is the text represented in the running program
inside the code you cant say whats written right here
代码:
language_file = open("file.txt", "r", encoding="utf-8")
language_list = storage_file.readlines()
print(language_list[1])
希望你能理解我的问题^ 我不想使用列表,而是想使用字典。然后文件应该看起来像这样:
"some_shortcut_to_remind_me_whats_happening": "Text in another language"
"another_shortcut": "Now I know whats written right here"
代码可能如下所示:
print(language_dict["another_shortcut"])
但我不知道如何从文本文件中获取字典
为什么不直接将文件保存在 json 中?它仍然很容易阅读,您也可以在一个文件中包含多种语言:
示例:
File.json 包含:
{
"en":
{
"some_shortcut_to_remind_me_whats_happening": "Text in another language",
"another_shortcut": "Now I know whats written right here"
}
}
您的代码将类似于:
import json
with open("file.json", "r") as f:
json = json.load(f)
print(json["en"]["some_shortcut_to_remind_me_whats_happening"])
如果您不想使用外部库并按如下格式设置文件格式:
key1: value1
key2: value2
.....
您可以使用:
with open(filename, 'r') as f:
my_dict = dict((key, value.strip())
for key, value in (line.split(':') for line in f))
您描述的内容看起来像一个 CSV 文件,其中分隔符是 :
并使用 "
作为引号(默认)。您可以通过这种方式轻松构建查找 table:
language_dict = {}
with open("file.txt", "r", encoding="utf-8", newline='') as language_file:
reader = csv.reader(language_file, delimiter=':', skipinitialspace=True)
for row in reader:
language_dict[row[0]] = row[1]
注意:此语法仅对 Python3 有效,不幸的是,用于 csv 的文件的打开在 Python2 和 Python3 之间是不同的。在 Python2 中,第一行是:
with open("file.txt", "rb") as language_file: