在Python中,www.example.com的替代方案是什么text.properties

h22fl7wq  于 2023-01-22  发布在  Python
关注(0)|答案(3)|浏览(142)

我正在寻找一种方法来移动所有的文本字符串到一个单独的文件。这将有助于使国际版本。
它应该像hello_world.py那样工作

print(hello_statement)

text.properties

hello_statement=Hello world

什么是正确的实施方式?

ltqd579y

ltqd579y1#

实现这一点的一种方法是使用configparser这样的库从属性文件读入值,然后可以在Python代码中引用这些值。例如,可以创建一个名为text.properties的文件,其内容如下:

[Strings]
hello_statement = Hello world

在Python代码中,可以使用configparser库从属性文件中读取值:

import configparser

config = configparser.ConfigParser()
config.read('text.properties')

hello_statement = config['Strings']['hello_statement']
print(hello_statement)
hc2pp10m

hc2pp10m2#

您可以简单地使用不同语言的.py文件。例如,您可以具有:

英语.py

hello_statement = "Hello World"

西班牙语.py

hello_statement = "Hola Mundo"

现在您可以根据语言导入匹配的文件:

lang = "es"
if lang == "en":
    from english import *
elif lang == "es":
    from spanish import *
else:
    raise ValueError("Unsupported language:", lang)

print(hello_statement)
kx1ctssn

kx1ctssn3#

如果你不想使用额外的库,那么这个也可以。
text.properties

hello_statement=Hello world

代码:

# open the file
with open("text.properties") as f:
    data = f.readlines()

source_dict = {}

# parse the file
for line in data:
    k, v = line.split("=")
    source_dict[k] = v

# print function
def print_from_file(statement):
    print(source_dict[statement])

# use print function
print_from_file("hello_statement")

不过,@tomerikoo的注解加上import语句看起来最优雅:)

相关问题