簡體   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