[英]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.