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是一种文本格式;它是包含由分隔符分隔的数据列的任何文本文件,可以是逗号,管道符号,选项卡或任何其他文件。 –