相关疑难解决方法(0)

python中的属性文件(类似于Java属性)

给定以下格式(.properties.ini):

propertyName1=propertyValue1
propertyName2=propertyValue2
...
propertyNameN=propertyValueN
Run Code Online (Sandbox Code Playgroud)

对于Java,有一个Properties类,它提供了解析/与上述格式交互的功能.

python标准库(2.x)中有类似的东西吗?

如果没有,我还有其他选择吗?

python properties

124
推荐指数
8
解决办法
15万
查看次数

使用Python的ConfigParser读取没有部分名称的文件

我正在使用ConfigParser来读取脚本的运行时配置.

我希望能够灵活地不提供部分名称(有足够简单的脚本;它们不需要'部分').ConfigParser将抛出ConfigParser异常,并且不接受该文件.

如何使ConfigParser只检索ConfigParser没有部分名称的配置文件的元组?例如:

key1=val1
key2:val2
Run Code Online (Sandbox Code Playgroud)

我宁愿不写入配置文件.

python parsing configuration-files

81
推荐指数
7
解决办法
8万
查看次数

Pyparsing:如何解析数据然后编辑.txt文件中的特定值?

我的数据位于.txt文件中(不,我无法将其更改为其他格式),它看起来像这样:

varaiablename = value
something = thisvalue
youget = the_idea

这是我到目前为止的代码(取自Pyparsing中的示例):

from pyparsing import Word, alphas, alphanums, Literal, restOfLine, OneOrMore, \
empty, Suppress, replaceWith

input = open("text.txt", "r")
src = input.read()

# simple grammar to match #define's
ident = Word(alphas + alphanums + "_")
macroDef = ident.setResultsName("name") + "= " + ident.setResultsName("value") + Literal("#") + restOfLine.setResultsName("desc")
for t,s,e in macroDef.scanString(src):
print t.name,"=", t.value
Run Code Online (Sandbox Code Playgroud)

那么如何告诉我的脚本编辑特定变量的特定值?
示例:
我想将variablename的值从value更改为new_value.所以基本上是变量=(我们想要编辑的数据).

我可能应该明确表示我不想直接进入文件并通过将值更改为new_value来更改值,但我想解析数据,找到变量然后给它一个新值.

python pyparsing

6
推荐指数
2
解决办法
1554
查看次数

使用全局选项解析rsyncd配置文件时的ConfigParser.MissingSectionHeaderError

配置文件通常需要每个部分的节头.在rsyncd配置文件中,全局部分不需要显式地具有节头.rsyncd.conf文件的示例:

[rsyncd.conf]

# GLOBAL OPTIONS

path            = /data/ftp
pid file        = /var/run/rsyncdpid.pid
syslog facility = local3
uid             = rsync
gid             = rsync
read only       = true
use chroot      = true

# MODULE OPTIONS
[mod1]
...
Run Code Online (Sandbox Code Playgroud)

如何使用python解析这样的配置文件ConfigParser?执行以下操作会产生一个错误:

>>> import ConfigParser
>>> cp = ConfigParser.ConfigParser()
>>> cp.read("rsyncd.conf")

# Error: ConfigParser.MissingSectionHeaderError: File contains no section headers.
Run Code Online (Sandbox Code Playgroud)

python rsync configparser

5
推荐指数
2
解决办法
8305
查看次数

如何从文本文件创建包含键值对的字典

我有一个文本文件(one.txt),其中包含任意数量的键\xe2\x80\x90值对(其中键和值由冒号\xe2\x80\x93分隔,例如x:17)。以下是一些(减去数字):

\n\n
    \n
  1. 马蒂斯:图皮斯
  2. \n
  3. Aliquam:adipiscing
  4. \n
  5. 非木木:舌舌草
  6. \n
  7. 杜伊: 特里斯
  8. \n
  9. 非麻木:pretium
  10. \n
  11. 乌尔纳:多洛尔
  12. \n
  13. 奥迪奥:毛里斯
  14. \n
  15. 莱克图斯:每
  16. \n
  17. 夸姆:嘲笑
  18. \n
  19. 特勒斯:非努米
  20. \n
  21. 结果:梅图斯
  22. \n
\n\n

我需要打开该文件并创建一个包含所有键\xe2\x80\x90值对的字典。

\n\n

到目前为止我已经打开文件

\n\n
file = []\nwith open('one.txt', 'r') as _:\n    for line in _:\n        line = line.strip()\n        if line:\n            file.append(line)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我以这种方式打开它以消除文本文件中的换行符和最后一个黑行。我得到了 python 中的键值对列表。

\n\n

我不确定如何使用列表键值对创建字典。\n我尝试过的所有操作都会出现错误。有些人说了类似的话

\n\n
\n

ValueError:字典更新序列元素#0的长度为1;需要 2 个

\n
\n

python dictionary

3
推荐指数
1
解决办法
3679
查看次数

如何在python中读取属性文件

我有一个属性文件

Configuration.properties
path=/usr/bin
db=mysql
data_path=/temp
Run Code Online (Sandbox Code Playgroud)

我需要读取此文件并在后续脚本中使用路径,db和data_path等变量.我可以使用configParser或只是读取文件并获取值.提前致谢.

python configparser

1
推荐指数
3
解决办法
2万
查看次数

从配置文件Python读取值

我的文件.env文件包含5行

DB_HOST=http://localhost/
DB_DATABASE=bheng-local
DB_USERNAME=root
DB_PASSWORD=1234567890
UNIX_SOCKET=/tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)

我想编写python来获取DB_DATABASE的值, 我想要这个bheng-local


我会用

import linecache
print linecache.getline('.env', 2)
Run Code Online (Sandbox Code Playgroud)

但是有些人可能会更改cofigs的顺序,这就是为什么行缓存不是我的选择。


我不确定如何只检查某些字符串,但要检查整行,并在后面获取值=

我有点卡在这里:

file = open('.env', "r")
read = file.read()
my_line = ""

for line in read.splitlines():
    if line == "DB_DATABASE=":
        my_line = line
        break
print my_line
Run Code Online (Sandbox Code Playgroud)

有人可以在这里给我一点推动力吗?

python configuration environment-variables

1
推荐指数
2
解决办法
9456
查看次数