python - 在python中用单个选项卡替换多个选项卡
问题描述
我是python编程的新手。我正在阅读一个制表符分隔的文件,并且想做一个可以用单个制表符替换多个制表符(分隔两列)的操作。
with open('file.tsv','r') as fin:
cr = csv.reader(fin, delimiter='\t')
filecontents = [line for line in cr]
我尝试通过加入功能来做到这一点
with open('file.tsv','r') as fin:
cr = csv.reader(fin, delimiter='\t')
filecontents = ''.join([line.replace('\t\t', '\t') for line in cr])
我得到以下错误。
AttributeError: 'list' object has no attribute 'replace'
我该怎么做?
解决方案
您可以使用
re.sub
给它 "[\t]+" 是告诉它找到一个或多个选项卡并将其替换为 1。
注意 "\\" 的使用是告诉 python 它是一个特殊字符。
import re
s = "a\\t\\t\\t\\t\\ta\\t\\t"
print (re.sub(r"[\\t]+", "\t", s))
output >>>
a a
推荐阅读
- python - GEKKO 中的 FOPDT 方程组 - 使用多个输入
- git - 在 Windows 上运行 git rebase 命令时删除符号链接 .git/logs
- sql - 如何使多个表的表左外连接
- jquery-select2 - 当我点击 select2 我的页面向右和底部滚动
- php - Hash::check 成功,但 Auth::attempt 失败
- javascript - 错误:产品验证失败:路径:需要路径“路径”
- hangouts-chat - 任何人都可以用 php 分享工作的环聊聊天 api 示例吗?
- python - 合并行 + Groupby/apply 函数
- mysql - 这个来自 MSSQL 的存储过程在转换为 MySql 后不起作用
- react-native - 在本机反应中使用循环动态创建单选按钮