2017-08-27 27 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])