【问题标题】:about Python text replace关于 Python 文本替换
【发布时间】:2021-11-21 02:47:48
【问题描述】:

我有一个文本文件

#8,09-24,17:043.00,3.30,2.03,#7,09-24,16:222.95,3.30,2.05,#6,09-24,15:58,3.00,3.30,2.03

我想改成

#8,09-24,17:04,3.00,3.30,2.03,#7,09-24,16:22,2.95,3.30,2.05,#6,09-24,15:58,3.00,3.30,2.03

我能想到的就是用替换

textfile=textfile.replace(":01,",":01").replace(":02,",":02") #etc
textfile=textfile.replace(":01",":01,").replace(":02",":02,") #etc

我可以知道还有什么其他方法可以在不输入所有可能结果的情况下做同样的事情。 谢谢

【问题讨论】:

  • 有什么变化,能告诉我吗?
  • 更改将按时进行 有些是“:00”,有些是“:00” 我想将其全部更改为“:00”

标签: python text replace


【解决方案1】:

IIUC,您需要将类似 17:043.00 的值替换为 17:04,3.00(可能要修复某种 csv 文件)。

您可以使用正则表达式和re.sub:

import re

text = '#8,09-24,17:043.00,3.30,2.03,#7,09-24,16:222.95,3.30,2.05,#6,09-24,15:58,3.00,3.30,2.03'
text2 = re.sub(r'(\d\d:\d\d)(\d+)', r'\1,\2', text)

输出:

#8,09-24,17:04,3.00,3.30,2.03,#7,09-24,16:22,2.95,3.30,2.05,#6,09-24,15:58,3.00,3.30,2.03

注意。你可以test how the regex works here

【讨论】:

    【解决方案2】:

    您的文件似乎包含固定宽度模式的数据。假设是这种情况,那么您可以这样做:-

    S = '#8,09-24,17:043.00,3.30,2.03,#7,09-24,16:222.95,3.30,2.05,#6,09-24,15:58,3.00,3.30,2.03'
    T = []
    for i in range(0, len(S), 29):
        k = i + 14
        T.append(S[i:k]+','+S[k:k+15])
    print(''.join(T))
    

    【讨论】:

      猜你喜欢
      • 2018-10-17
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多