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