Python:行拆分和连接

时间:2017-11-20 01:39:49

标签: python join split

我有一个包含以下格式内容的文件:

a1 b1 c1 d1|e1|f1|path/file_name/n

a2 b2 c2 d2|e2|f2|path/file_name/n

在上面的字符串中,文件名可以有空格,因此上面的文件名可以改为:

a b c d|e|f|path/file name.txt

我需要遍历文件中的每一行来搜索包含文件名的记录。在搜索时,我需要匹配给定行中的某些内容,例如如果a> x和e ='test'等..作为搜索的一部分。

首先,我试过,在下面:

for line in data_file:
    f_a f_b f_c f_d = line.split(' ')

如果文件名没有空格并且如果它有空格,那么上面的工作正常,那么错误输出为'解压缩的值太多'。(预期4) 如果我使用,

f_a f_b f_c f_d = line.rsplit(' ', 3)

然后它不会在第一个空格后存储带有名称的文件。

任何人都可以建议解决这个问题。

1 个答案:

答案 0 :(得分:1)

如果确实在所有行中,文件名是最后一个'|'之后的字符串,那么请先尝试拆分。

a b c d|e|f|path/file name.txt为例,先做

f_list, f_e, f_f, filename = line.split('|')

这可以获得filename中的路径+文件名,无论它是否有空格。然后,您可以按照目前的方式进一步拆分f_list

f_a, f_b, f_c, f_d = f_list.split(' ')