Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python从.txt文件中的键值对提取值_Python_Python Import_Key Value - Fatal编程技术网

使用python从.txt文件中的键值对提取值

使用python从.txt文件中的键值对提取值,python,python-import,key-value,Python,Python Import,Key Value,我有一个文本文件,其中包含一行,其中包含一个键和一个值。 如: 姓名:xyz 如何从python导入该文本文件并获取名称,即xyz open('filename.txt').readline().split(':')[1].strip() open('filename.txt')打开文件 .read读取该行 .split(“:”)[1]拆分:上的行,并获取第二个元素(值) .strip()从第一个空格中剥离值 open('filename.txt')打开文件 .read读取该行 .spl

我有一个文本文件,其中包含一行,其中包含一个键和一个值。 如: 姓名:xyz

如何从python导入该文本文件并获取名称,即xyz

open('filename.txt').readline().split(':')[1].strip()
  • open('filename.txt')
    打开文件
  • .read
    读取该行
  • .split(“:”)[1]
    拆分
    上的行,并获取第二个元素(值)
  • .strip()
    从第一个空格中剥离值
  • open('filename.txt')
    打开文件
  • .read
    读取该行
  • .split(“:”)[1]
    拆分
    上的行,并获取第二个元素(值)
  • .strip()
    从第一个空格中剥离值

根据用例的不同,如果需要在那里存储更多的值,我认为最干净的解决方案是使用python中的配置模块。在这里,您不需要自己解析任何内容:

除此之外,您还可以按照注释中的建议读取该文件

这可能是这样的:

from ConfigParser import SafeConfigParser

cf_parser = SafeConfigParser()
cf_parser.read("file")
name = cf_parser.get("section", "name")
然后,该文件可能看起来像:

[section]
name = xyz

根据用例的不同,如果需要在那里存储更多的值,我认为最干净的解决方案是使用python中的配置模块。在这里,您不需要自己解析任何内容:

除此之外,您还可以按照注释中的建议读取该文件

这可能是这样的:

from ConfigParser import SafeConfigParser

cf_parser = SafeConfigParser()
cf_parser.read("file")
name = cf_parser.get("section", "name")
然后,该文件可能看起来像:

[section]
name = xyz

如果文件名为keyfile.txt,则此工作:

f = open('keyfile.txt')
s = f.readline()
s.split()[1]

如果文件名为keyfile.txt,则此工作:

f = open('keyfile.txt')
s = f.readline()
s.split()[1]

试试看。它使用列表理解,并使用Python 2.7在我的本地机器上处理像您这样的文件

with open("your_file.txt", "r") as file:
    rows = ( line.split(':') for line in file)
    dict = { row[0]:row[1] for row in rows }
for item in dict:
    print dict[item]

试试看。它使用列表理解,并使用Python 2.7在我的本地机器上处理像您这样的文件

with open("your_file.txt", "r") as file:
    rows = ( line.split(':') for line in file)
    dict = { row[0]:row[1] for row in rows }
for item in dict:
    print dict[item]

它们是如何分开的,键和值?每行一个键值?
key,value=open('filename.txt').read().strip().split(':')
我的意思是。。。键和值之间的分隔符是什么?它是一个冒号,像上面假设的用户一样,还是别的什么?@omu_negrou在问题中说
Name:xyz
它们是如何分开的,键和值?每行一个键值?
key,value=open('filename.txt').read().strip().split(':')
我的意思是。。。键和值之间的分隔符是什么?它是一个冒号,像上面假设的用户一样,还是别的什么?@omu_negrou在问题中说
Name:xyz
您只需调用
strip
一次即可;要么在结尾,要么在中间,但是用<代码>分裂(':')< /代码>。另外,为了避免错误,如果文本包含
Key:Value
(无空格)或
Key:Value
(两个空格),用
readline()
替换
read()
也可能是一个好主意?这样,我的解决方案就更可靠了。但是我同意使用
readline()
而不是
read()
删除中间的
strip()
并尝试不带空格或双空格的情况。是的,中间的
strip()
是不必要的:)您只需调用
strip
一次即可;要么在结尾,要么在中间,但是用<代码>分裂(':')< /代码>。另外,为了避免错误,如果文本包含
Key:Value
(无空格)或
Key:Value
(两个空格),用
readline()
替换
read()
也可能是一个好主意?这样,我的解决方案就更可靠了。但是我同意使用
readline()
而不是
read()
删除中间的
strip()
并尝试不带空格或双空格的情况。是的,中间的
strip()
是不必要的:)