繁体   English   中英

从python中的字符串中删除子字符串

[英]Remove substring from a string in python

我有一个带有文件名的python文件。 我想使用python代码删除文件名的某些行和替换。 我的文件格式如下:

img/1.jpg
img/10.jpg
img/100.jpg 0 143 84 227
...

我想从所有文件和缺少坐标的行中删除img / substring。 对于第二项任务,我执行了以下操作:

for con in content:
  if ".jpg\n" in con:
        content.remove(con)

for con in content:
    print con

但是内容没有改变。

您试图在迭代列表content时对其进行修改。 这将很快咬住你的膝盖。

而是在python中生成一个新列表:

>>> content = [fn for fn in content if not fn.endswith(".jpg\n")]
>>> 

之后,您可以使用... contents的内容覆盖您读取的文件。 上面的示例假定在文件名和换行符之间没有空格可容纳。

当前方法中的错误是因为您要逐字母迭代, for l in somestring:会逐字母进行。 显然, ".jpg\\n"不会出现在单个字母中,因此您永远不会点击content.remove(con)

我建议一种稍微不同的方法:

with open("fileofdata.txt", 'r') as f:
    content = [line for line in f.readlines() if len(line.split()) > 1]

使用len(line.split())line.endswith()更健壮,因为它允许.jpg\\n之间有空格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM