2017-08-27 68 views
0

的每一行的一部分,我有一个文本文件是这样的:的Python - 删除文本文件

abc123bvjhfvb:dlnvsl|smth 
fsbffsb378hbdcbs:v5v3v|smth 
sdcg87wgn8:vy5b4|smth 
sin87s88vnus:y54545v4v|smth 
rc8n782c:efghrn|smth 

正如你可以看到有从第二行开始的空间。

如何将这些行转换为这些?

abc123bvjhfvb:dlnvsl 
fsbffsb378hbdcbs:v5v3v 
sdcg87wgn8:vy5b4 
sin87s88vnus:y54545v4v 
rc8n782c:efghrn 

我想是这样的:

lines = open("file.txt").readlines() 

for x in lines: 
    x.strip(" ").split("|") 
    print (x[0]) 

但只打印ABC123的“一”,然后一系列的每一行的空间。我认为[0]会打印第一个字母,而不是在“|”之前打印第一部分。 (例如abc123bvjhfvb:dlnvsl)

+0

字符串是不可变的,你需要指定'x.strip( “”).split(“|”)'某些变量。 –

+0

print x.replace(“| smth”,“”) – CodeCupboard

+0

x [0]指字符串x中的第一个字符,x是整行。 split()返回一个结果,你不分配给任何东西。您需要将结果分配给y,那么y [0]将引用该行中数组的第一个元素。 – Mike

回答

1

您需要的[0]在分割位的结束,否则你是字符串索引,索引不分割的部分。

你也想好分配一个变量皮毛条和分割位,然后打印出来,即Y = ...打印(Y)

+0

谢谢,它的工作! – AllExJ

1

问题是stripsplit不会变异x

代码需要使用返回值:

for x in lines: 
    x = x.strip(" ").split("|") 
    print (x[0])