为了账号安全,请及时绑定邮箱和手机立即绑定

删除每行的特定列

删除每行的特定列

万千封印 2021-07-02 14:01:51
我是 python 的新手,现在我没有想法。我想做什么:我有一个文件例子:254   578       name1      *--21->28--*      secname1854   548       name2      *--21->28--*      secname2944   785       name3      *--21->28--*      secname31025  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            secname1854   548       name2            secname2944   785       name3            secname31025  654       name4            secname4
查看完整描述

3 回答

?
MM们

TA贡献1886条经验 获得超2个赞

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


for line in open('85488_66325_R85V54.txt'): 

    newline = line[:21] + line[29:]

    print(newline)

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


查看完整回答
反对 回复 2021-07-13
?
森林海

TA贡献2011条经验 获得超2个赞

只需拆分行并弹出您不需要的元素。


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()


查看完整回答
反对 回复 2021-07-13
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您可以只使用字符串对象的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方法将每一行分成单独的块,此时您可以做任何您想做的事情,比如打印所有这些位并有选择地丢弃其中一列。


查看完整回答
反对 回复 2021-07-13
  • 3 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号