python - 如何从配置文件中删除白色字符?

标签 python configparser

我想用python修改samba配置文件。 这是我的代码

from ConfigParser import SafeConfigParser
parser = SafeConfigParser()
parser.read( '/etc/samba/smb.conf' )

for section in parser.sections():
    print section
    for name, value in parser.items( section ):
        print '  %s = %r' % ( name, value )

但是配置文件中有tab,是否可以忽略tab?

ConfigParser.ParsingError: File contains parsing errors: /etc/samba/smb.conf
    [line 38]: '\tworkgroup = WORKGROUP\n'

最佳答案

试试这个:

from StringIO import StringIO

data = StringIO('\n'.join(line.strip() for line in open('/etc/samba/smb.conf')))

parser = SafeConfigParser()
parser.readfp(data)
...

另一种方式(感谢@mgilson 的想法):

class stripfile(file):
    def readline(self):
        return super(FileStripper, self).readline().strip()

parser = SafeConfigParser()
with stripfile('/path/to/file') as f:
    parser.readfp(f)

关于python - 如何从配置文件中删除白色字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12821946/

相关文章:

python - 如何使用 configparser 对象获取配置文件路径

python - 如何使用字典映射替换字符串中的单词

python 3 configparser.read() 在给定不存在的文件时不会引发异常

python - 如何在启用多进程的 Flask 应用程序中使用全局变量

python - 为什么 Django 看不到我的测试?

python ConfigParser : read configuration from string

python - 从 python 中的 configparser 读取时,如何让缩进包含在多行值中?

python - 扩展插值在 configparser 中不起作用

python - Django 查询集缓存与exists() 和values_list()

python - 在 python 中 reshape 不规则列表