具有两个分隔符的Python拆分字符串
我想知道如何使用多个分隔符拆分字符串。如果一个是空格,我在拆分时遇到问题 我正在尝试读取包含以下内容的文本文件: 22.0;2016-01-16 00:16:18 我知道如何将文本文件读入变量,但当我无法拆分字符串时,我就不能再进一步了 我现在只有以下代码:具有两个分隔符的Python拆分字符串,python,string,split,Python,String,Split,我想知道如何使用多个分隔符拆分字符串。如果一个是空格,我在拆分时遇到问题 我正在尝试读取包含以下内容的文本文件: 22.0;2016-01-16 00:16:18 我知道如何将文本文件读入变量,但当我无法拆分字符串时,我就不能再进一步了 我现在只有以下代码: with open('datasource_3.txt', 'r') as f: data = f.readlines() for line in data: words = line.strip().
with open('datasource_3.txt', 'r') as f:
data = f.readlines()
for line in data:
words = line.strip().split(';')
print words
您可以使用:
这相当于拆分初始输入,然后在第二个分隔符上拆分每个结果。最后,你
作为一个单行程序,您需要的是:
[item for sublist in [word.split(' ') for word in x.strip().split(';')] for item in sublist]
您可以使用:
这相当于拆分初始输入,然后在第二个分隔符上拆分每个结果。最后,你
作为一个单行程序,您需要的是:
[item for sublist in [word.split(' ') for word in x.strip().split(';')] for item in sublist]
您可以使用进行拆分|代码>,如下所示:
import re
x = '22.0;2016-01-16 00:16:18'
print re.split(';| ', x)
这将打印['22.0','2016-01-16','00:16:18']
您可以使用进行拆分|代码>,如下所示:
import re
x = '22.0;2016-01-16 00:16:18'
print re.split(';| ', x)
这张打印的['22.0','2016-01-16','00:16:18']
itertools
可以在这里提供帮助
import itertools
s = '22.0;2016-01-16 00:16:18'
sp = itertools.chain(*([x] if not i else x.split(' ')
for i, x in enumerate(s.split(';'))))
print(list(sp))
输出:
['22.0','2016-01-16','00:16:18']
使用可能更优雅的或
(而不是如果
)语法:
itertools
在这里有帮助
import itertools
s = '22.0;2016-01-16 00:16:18'
sp = itertools.chain(*([x] if not i else x.split(' ')
for i, x in enumerate(s.split(';'))))
print(list(sp))
输出:
['22.0','2016-01-16','00:16:18']
使用可能更优雅的或
(而不是如果
)语法:
您可以使用shlex创建自己的解析器:
import shlex
def split_multi(_str, delims="", ws=True):
parser = shlex.shlex(_str, posix=True)
parser.whitespace_split = ws
parser.whitespace += delims
return pars
演示:
您可以使用shlex创建自己的解析器:
import shlex
def split_multi(_str, delims="", ws=True):
parser = shlex.shlex(_str, posix=True)
parser.whitespace_split = ws
parser.whitespace += delims
return pars
演示:
你的预期产出是多少?这是关键信息!是的可能重复对不起我忘了[21.7',2016-01-15 23:33:54']您的预期产量是多少?这是关键信息!很抱歉,我忘记了[21.7',2016-01-15 23:33:54']现在添加re
1行代码。:)对于这样一个简单的任务,它是非常详细的解决方案现在添加re
一行代码。:)对于这样一个简单的任务,这是一个非常详细的解决方案。谢谢,它非常有效。我刚刚添加了.strip(),使它像我想感谢的那样工作。没有问题!您可以添加,例如,;| ||-如果您想识别更多分隔符,请将code>添加到正则表达式中。谢谢,它非常有效。我刚刚添加了.strip(),使它像我想感谢的那样工作,没有问题!您可以添加,例如,;| ||-如果要识别更多分隔符,请将code>添加到正则表达式。