删除每个特定列

2024-09-29 20:26:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的新手,现在我没有主意了。 我要做的是:我有一个文件

示例:

254   578       name1      *--21->28--*      secname1
854   548       name2      *--21->28--*      secname2
944   785       name3      *--21->28--*      secname3
1025  654       name4      *--21->28--*      secname4

在这些文件之间有很多空格,我不想为每一行删除“name*”和“secname*”之间的特定空格。如示例中所示,我不知道如何删除字符/空格21->;28

到目前为止我得到的:

fobj_in = open("85488_66325_R85V54.txt")
fobj_out = open("85488_66325_R85V54.txt","w")

for line in fobj_in:



fobj_in.close()
fobj_out.close()

最后应该是这样的:

254   578       name1            secname1
854   548       name2            secname2
944   785       name3            secname3
1025  654       name4            secname4

Tags: 文件in示例open空格name1fobjname2
3条回答

要按特定索引位置删除字符,必须使用切片

for line in open('85488_66325_R85V54.txt'): 
    newline = line[:21] + line[29:]
    print(newline)

删除列21:28中的字符(在您的示例中都是空白)

把线分开,弹出你不需要的元素。你知道吗

fobj_in = open('85488_66325_R85V54','r')
fobj_out = open('85488_66325_R85V54.txt', 'a')
for line in fobj_in:
     items = line.split()
     items.pop(3)
     fobj_out.write(' '.join(items)+'\n')
fobj_in.close()
fobj_out.close()

您可以只使用string对象的split方法,如下所示:

f = open('my_file.txt', 'r')
data = f.readlines()
final_data = []
for line in data:
    bits = line.split()
    final_data.append([bits[0], bits[1], bits[2], bits[4]])

基本上,我只是演示如何使用split方法将每一行分解成单独的块,此时您可以做任何您想做的事情,比如打印所有这些位并有选择地丢弃其中一列。你知道吗

相关问题 更多 >

    热门问题