python 读写文件 另存为_python如何读取tsv文件,将其清除并另存为新文件?

您不需要编写任何更改,您只需更改每行中的第五个元素,而不需要对其执行任何操作,如果您要更改原始文件,可以将其写入tempfile,并执行shutil.move以用更新的temp替换原始文件:import string

exclude = string.punctuation

from tempfile import NamedTemporaryFile

from shutil import move

with open("test1") as tsvfile, NamedTemporaryFile(dir=".",delete=False) as t:

tsvreader = csv.reader(tsvfile, delimiter="\t")

temp = csv.writer(t,delimiter="\t")

for row in tsvreader:

row[4] = row[4].strip(exclude)

temp.writerow(row)

move(t.name,"test1")

如果要创建新文件而不是更新原始文件,只需打开一个新文件并写入每个已清理的行:with open("test1") as tsvfile, open("out","w") as t:

tsvreader = csv.reader(tsvfile, delimiter="\t")

temp = csv.writer(t,delimiter="\t")

for row in tsvreader:

row[4] = row[4].strip(exclude)

temp.writerow(row)

去掉标点符号str.strip(exclude)就足够了。如果要从任何位置删除,可以返回到''.join([ch for ch in line[4] if ch not in exclude]),但如果要从任何位置删除,则应使用str.translate:row[4] = row[4].translate(None,exclude)

如果要添加空格:from string import maketrans

tbl = maketrans(exclude," "*len(exclude))

....

row[4] = row[4].translate(tbl)

最后,如果您实际上是指第四列,那么它应该是row[3]而不是row[4]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值