Python 删除字符串中的第一个字符会留下空白
我有一个如下所示的文本文件:Python 删除字符串中的第一个字符会留下空白,python,Python,我有一个如下所示的文本文件: 6 Hello World 我是这样读的: with open("test.txt") as fp: for line in fp: l = line.split(" ") print(l) 这会将整个字符串打印给我: 6 Hello World 我想删除“6”字符,只需将字符串“Hello World”存储在另一个字符串中: 我已经做到了 newStr = l.replace(l[0],"") 现在我知道了: He
6 Hello World
我是这样读的:
with open("test.txt") as fp:
for line in fp:
l = line.split(" ")
print(l)
这会将整个字符串打印给我:
6 Hello World
我想删除“6”字符,只需将字符串“Hello World”存储在另一个字符串中:
我已经做到了
newStr = l.replace(l[0],"")
现在我知道了:
Hello World
现在我想删除前导空格,并存储字符串。
我试过这个:
newStr2 = newStr.replace(newStr[0],"")
print(newStr2)
但这表明:
HelloWorld
而不是Hello World
(无前导空格字符)
我做错了什么?
另外,在newStr2上使用len()会告诉我长度是11,尽管它是10。len()是否包含换行符?这是因为
newStr.replace(newStr[0],“”)
与newStr.replace(“,”)
相同,后者用空字符串替换单个空格的每个实例
您需要的是lstrip
,它从字符串中删除所有前导空格
更重要的是,为了不那么冗长,您可以简单地从字符串中切掉前导字符,然后lstrip
:
newStr = l[1:].lstrip()
另一方面,新行字符是长度为1的字符,在len
中有适当的说明:
>>> len('\n')
1
专业提示:
line.split()。看
基本上,您的代码变成:
with open("test.txt") as fp:
for line in fp:
l = line.split()
print(l[1:].lstrip())
另一种方法是,如果您想完全跳过替换(并假设所有数据都遵循此模式),只需从.strip()
on返回的列表的第二个元素中获取所有内容,使用连接和切片,如下所示:
l = " ".join(line.split(" ")[1:])