我有一個腳本,我想用它從文件中刪除包含特定IP地址的行。這是:刪除包含特定字符串的行
for line in fileinput.input(hostsFileLoc,inplace =1):
line = line.strip()
if not hostIP in line:
print line
然而,這類作品有兩件事我正在努力解決。
這個腳本會刪除任何比賽,所以例如在之前
127.0.0.1
127.0.0.11
127.0.0.111
192.168.0.1如果我運行這個與輸入「127.0.0.11」,它將刪除「127.0.0.11」和「127.0.0.111」,這不是我想要的。
此腳本也不處理csv文件。我需要從每行只有一行的文件和每行IP地址(根據上面的列表)以及第一個字段是有問題的IP地址的csv文件中刪除它。我曾嘗試在strip函數中使用正則表達式
[\s\,]+
,但這不能正常工作,並在將其餘行重新打印迴文件時添加空白行。
我知道這可能有很多要問,但我仍然試圖找到解決Python奇蹟的方法。
任何想法都會受到歡迎和非常感謝。
這正是我想要的......我的理解什麼是'第一個元素= [0] .strip()'是什麼意思? – MHibbin
@MHibbin:'elements'是一個csv行,分成一個'list',其中每個元素是行中的一個字段。 '元素[0]'是csv行的第一個元素。然後'.strip()'在行內容之前或之後刪除任何空格。這很重要,因爲當比較相等性時,在ip地址之前或之後的空格/製表符會使匹配成爲假。這有幫助嗎?例如, –
。第一行csv有'blah,foo,bar'。 '元素'然後是'['blah','foo','bar']'。 'elements [0]'是''blah''和'elements [0] .strip()'是''blah''(注意刪除尾部後面的空格)。 –