嘿我现在正在使用python来读取txt文件中的字符串列表,我想在前面切断多个字符串,例如
我的txt文件中的示例:
Jack: Black
Jack: Sparrow
Jimm: Oliver
Jimm: Next
Jimm: Red
Ston: Cold
Bill: Black
我想从每一行中删除前5个字符串(包括':'),以便获得所需的结果
Black
Sparrow
Oliver
Next
Red
Cold
Black
我一直在尝试使用.replace(),但是我无法确定字符串既不使用字符串切片(它只会剪切第一行中的少数几个字符)
目前我的程序如下:
with open("C:\\Documents and Settings\\Zha\\Desktop\\test3.txt", "r") as text:
a = text.read()
b = str(a).replace(a[:5],'')
print b
,当前输出为
Black
Sparrow
Jimm: Oliver
Jimm: Next
Jimm: Red
Ston: Cold
Bill: Black
答案 0 :(得分:2)
迭代文件中的每一行:
with open(filename, "r") as text:
for line in text:
print line[6:]
答案 1 :(得分:1)
使用split
:
with open("C:\\Documents and Settings\\Zha\\Desktop\\test3.txt", "r") as text:
for line in text:
if line.strip():
print line.split(':')[1].strip()
答案 2 :(得分:1)
a
是整个文件,作为字符串:
"Jack: Black\nJack: Sparrow\nJimm: Oliver\n" # and so on
所以a[:5] == 'Jack:'
,您可以适当地替换所有出现的内容,但这并不会对不包含这些字符的行做任何事情。
对于你想要实现的目标,readlines()
(给出一个列表,其中每个项目是一行作为字符串)与split
结合使用可能更有用:
b = [line.split()[1] for line in text.readlines()]
即。 "对于文件中的每一行,在空格上拆分并给我第二部分"。这给出了b == ["Black", "Sparrow", "Oliver", ...]
,意味着您不限于第一部分恰好是5个字符的行。
答案 3 :(得分:0)
您可以使用以下代码执行此操作:
with open('input.txt') as f:
f = f.readlines()
f = [i[6:].strip() for i in f]
print f
[OUTPUT]
['Black', 'Sparrow', 'Oliver', 'Next', 'Red', 'Cold', 'Black']