如何从一行的开头删除两个字符

rju*_*ser 37 python

我是一个完整的Python菜鸟.如何从文件中每行的开头删除两个字符?我正在尝试这样的事情:

#!/Python26/

import re

f = open('M:/file.txt')
lines=f.readlines()

i=0;
for line in lines:
    line = line.strip()     
    #do something here
Run Code Online (Sandbox Code Playgroud)

Amb*_*ber 80

你有一个良好的开端.在循环中尝试这个:

for line in lines:
    line = line[2:]
    # do something here
Run Code Online (Sandbox Code Playgroud)

[2:]被称为" 切片 "语法,它基本上说"给我这个序列的一部分,从索引2开始并继续到结尾(因为在冒号后没有指定结束点).

  • +1用于在问题的上下文中提供答案*和*用于初学者级别的解释. (8认同)

Grz*_*zki 21

字符串切片将帮助您:

>>> a="Some very long string"
>>> a[2:]
'me very long string'
Run Code Online (Sandbox Code Playgroud)


Ott*_*ger 10

就像提示一样,您可以将程序缩短为

for line in open('M:/file.txt'):
    line = line[2:]
Run Code Online (Sandbox Code Playgroud)

如果您还需要携带行号,请使用

for i, line in enumerate(open('M:/file.txt.')):
    line = line[2:]
Run Code Online (Sandbox Code Playgroud)


kch*_*kch 9

您可能对列表理解感到满意,而不是使用for循环:

[line[2:] for line in lines]
Run Code Online (Sandbox Code Playgroud)

就像好奇心一样,请检查cutunix工具.

$ cut -c2- filename
Run Code Online (Sandbox Code Playgroud)

-c的切片语法与python非常相似.