Python 从配置文件中删除一个字符串

标签 python split

我有一个配置文件,其中包含一个以制表符分隔的字符串。我想检索该字符串,然后将其转换为一个漂亮的列表。但是,我看到了一些我在 iPython 上直接执行时看不到的有趣的东西。

[myvars]
myString = "a\tb\tc\td"
.....
.....<many more variables>

我的 Python 代码是这样的:

param_dict = dict(config.items(myvars))
str1 = param_dict["myString"]
print str1
print str1.split()

然后打印出来:

"a\tb\tc\td"
['"a\\tb\\tc\\td"']

但是,当我在我的 python 控制台上做同样的事情时,我得到了我所期望的:

Python 2.7.6 (default, Mar 22 2014, 22:59:38) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> "a\tb\tc\td".split()
['a', 'b', 'c', 'd']
>>> k = "a\tb\tc\td"
>>> k.split()
['a', 'b', 'c', 'd']

这是怎么回事?有人可以帮我吗?我无法更改配置文件变量的格式。而且,我想取出变量并剥离到一个漂亮的列表中。

谢谢。

最佳答案

这里正在读取反斜杠,打印纯字符串时看不到它,但如果打印 repr 就会看到。

In [11]: myString = "a\\tb\\tc\\td"

In [12]: print(myString)
a\tb\tc\td

In [13]: print(repr(myString))
'a\\tb\\tc\\td'

可以使用decode将\\t转换为\t:

In [14]: myString.decode('string_escape')
Out[14]: 'a\tb\tc\td'

一旦它们成为标签,您就可以拆分它们:

In [15]: myString.split()
Out[15]: ['a\\tb\\tc\\td']

In [16]: myString.decode('string_escape').split()
Out[16]: ['a', 'b', 'c', 'd']

关于Python 从配置文件中删除一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29531565/

相关文章:

python - 如果使用 'AllowAny' 权限类,如何防止 Django Rest Framework 验证 token ?

java - 将文件中的行分割成不同的子字符串

Java 通过自定义正则表达式匹配拆分字符串

python - Cartopy 投影随不同数据/意外行为而变化

python - 从 django-admin 命令发送 django 信号?

python - Pandas 合并 5 个 csv 文件,只有 1 个不同的列名

java - 按换行符分割 Java 字符串

不能从 class.__dict__ 调用 python 类方法

javascript - 不要在循环的最后一次迭代中添加字符串

python split() vs rsplit() 性能?