Python - 删除文本文件每行的一部分

Python - Delete a part of each line of a textfile

我有一个这样的文本文件:

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

如您所见,从第二行开始有一个 space。

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

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 的 "a",然后每行打印一系列 space。我认为 [0] 去打印第一个字母而不是在“|”之前打印拆分的第一部分(例如 abc123bvjhfvb:dlnvsl)

问题是 stripsplit 不会突变 x

代码需要使用返回值:

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

您需要在拆分位的末尾添加 [0],否则您是在对字符串进行索引,而不是对拆分的部分进行索引。

你也可以在 strip 和 split 位上分配一个变量,然后打印它,即 y = ... print(y)