相关疑难解决方法(0)

如何快速解析字符串列表

如果我想拆分由分隔符分隔的单词列表,我可以使用

>>> 'abc,foo,bar'.split(',')
['abc', 'foo', 'bar']
Run Code Online (Sandbox Code Playgroud)

但是,如果我还想处理可以包含分隔符字符的带引号的字符串,如何轻松快速地做同样的事情?

In: 'abc,"a string, with a comma","another, one"'
Out: ['abc', 'a string, with a comma', 'another, one']
Run Code Online (Sandbox Code Playgroud)

相关问题:如何将逗号分隔的字符串解析为列表(警告)?

python

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

使用ConfigParser从配置文件中获取列表

我的配置文件中有这样的东西(包含字符串列表的配置选项):

[filters]
filtersToCheck = ['foo', '192.168.1.2', 'barbaz']
Run Code Online (Sandbox Code Playgroud)

是否有更优雅(内置)的方法从filtersToCheck获取列表而不是删除括号,单引号,空格然后使用split()它?也许一个不同的模块?

(使用python3.)

python list configuration-files configparser python-3.x

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

Python的ConfigParser每个部分的唯一键

我阅读了部分文档,并看到ConfigParser返回一个部分中选项的键/值对列表.我认为在一个部分中键不需要是唯一的,否则解析器只会返回一个映射.我围绕这个假设设计了我的配置文件模式,然后遗憾地意识到情况并非如此:

>>> from ConfigParser import ConfigParser
>>> from StringIO import StringIO
>>> fh = StringIO("""
... [Some Section]
... spam: eggs
... spam: ham
... """)
>>> parser = ConfigParser()
>>> parser.readfp(fh)
>>> print parser.items('Some Section')
[('spam', 'ham')]
Run Code Online (Sandbox Code Playgroud)

然后我回去找到了我应该阅读的文档部分:

节通常存储在内置字典中.可以将另一个字典类型传递给ConfigParser构造函数.例如,如果传递了对其键进行排序的字典类型,则将在回写时对这些部分进行排序,每个部分中的键也将进行排序.

保留我现有的配置文件方案(我现在非常喜欢;)我正在考虑传递一个类似于映射的对象,如上所述,它会累积值而不是破坏它们.是否有一种更简单的方法来防止我丢失的键/值崩溃?ConfigParser我应该编写一个ConfigParser自己的变体,而不是制作一个疯狂的适配器(如果实现更改可能会破坏)?

我觉得这可能是那些我只看到困难解决方案的"呃"时刻之一.

[编辑:]这是一个更精确的例子,说明我多次使用相同的密钥:

[Ignored Paths]
ignore-extension: .swp
ignore-filename: tags
ignore-directory: bin
Run Code Online (Sandbox Code Playgroud)

我不喜欢逗号分隔列表语法,因为当你将它缩放到很多值时,它很难看.例如,以逗号分隔的50个扩展名列表将不具有特别的可读性.

python configuration-files

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

使用ConfigParser多次指定相同的选项

我想使用python ConfigParser模块读取配置文件:

[asection]
option_a = first_value
option_a = second_value
Run Code Online (Sandbox Code Playgroud)

我希望能够获得为选项“ option_a”指定的值的列表。我尝试了以下显而易见的方法:

test = """[asection]
option_a = first_value
option_a = second_value
"""
import ConfigParser, StringIO
f = StringIO.StringIO(test)
parser = ConfigParser.ConfigParser()
parser.readfp(f)
print parser.items()
Run Code Online (Sandbox Code Playgroud)

哪个输出:

[('option_a', 'second_value')]
Run Code Online (Sandbox Code Playgroud)

当我希望:

[('option_a', 'first_value'), ('option_a', 'second_value')]
Run Code Online (Sandbox Code Playgroud)

或者,甚至更好:

[('option_a', ['first_value', 'second_value'])]
Run Code Online (Sandbox Code Playgroud)

有没有办法用ConfigParser做到这一点?另一个主意?

python configparser

5
推荐指数
1
解决办法
1064
查看次数

如何在default.conf文件中创建数组或列表

我继承了一个python脚本,它从default.conf文件中提取一些变量,我相信它是一个机器配置文件.

该脚本的一个部分是从.conf文件中提取配置键并期望有一个可能的选项列表,但是现在只有一个选项,我不知道如何制作它所以有多个选项.

[syndication]
name = Test Name
title = Test Title
categories = Category 1
Run Code Online (Sandbox Code Playgroud)

所以在上面的例子中,配置键是syndication和我试图添加多个选项的变量是category.

谢谢!

python linux configuration webserver

4
推荐指数
1
解决办法
1106
查看次数

python:将字符串解压缩到列表中

关于配置文件中的多值元素的问题的答案(完全符合我的需要)建议"从配置中解压缩字符串".我阅读了几个地方建议的解包参数列表的文档,但我不明白这与我的问题有什么关系.

我确信这一点必须显而易见:有一个字符串str = "123,456",如何将其转换为列表[123,456](字符串中逗号分隔的元素数量可能会有所不同)

谢谢.

python list unpack

0
推荐指数
1
解决办法
1713
查看次数