input.txt是製表符分隔的。替換某些列的Python
我知道一個簡單的代碼來替換。
import fileinput
for line in fileinput.FileInput("input.txt",inplace=1):
line = line.replace("AA","0")
print line,
但是,我想僅更換input.txt中(而不是整個文件input.txt中)的第3列的細胞,也想通過0替換的細胞,如果它是或AA中的任一項AAA或BB或BBB,如果不是它們中的任何一個,則將其替換爲1。
在這裏,我說的是「匹配整個單元格內容」
通過「匹配整個單元格內容,」我的意思是,它會被替換,只有當一個細胞(如(2,3) - 元素input.txt)完全是AA或AAA或BB或BBB。諸如「AAs」的單元不會被任何東西取代。相反,如果沒有應用「匹配全部細胞內容物」,則只要細胞僅「包含」AA或AAA或BB或BBB,它就會被替換。所以一個單元格「AAhaha」將被替換爲「0haha」
無論如何,重複一遍,我想替換input.txt的第三列(而不是整個文件input.txt)的單元格,我想如果它是AA或AAA或BB或BBB中的任何一個,則將單元替換爲0,如果它不是其中任何一個,則以「匹配整個單元內容」方式替換單元1。
@MartijnPieters:如果它是一個CSV文件(當然,TSV)。我有時遇到了不是TSV的製表符分隔的數據。 –
@MartijnPieters我的輸入是txt,製表符分隔,UTF8沒有BOM。一個txt文件也可以是csv?那我怎麼檢查我的輸入是否是csv? – user1849133
@ user2604484:CSV是一種文本格式;它是包含由分隔符分隔的數據列的任何文本文件,可以是逗號,管道符號,選項卡或任何其他文件。 –