Python文本文件格式

时间:2017-12-15 13:56:30

标签: python file format

我需要使用Python进行一些文本文件格式化。我有来自串口的数据,所有文件都在一个文件中,一个接一个。我知道如何在文件中查找和替换文本,但我需要做这样的事情:

  1. 查找字符串int文件,(文件中会有很多字符串,不知道有多少字符串)
  2. 在此字符串后面添加一个空格(或其他字符)。我找不到如何操纵文件中的光标位置。
  3. 如何获取文件中找到的字符串的位置?

    例如,文件中的数据是这样的:

    (这基本上是来自串口的十六进制数据,但在保存到文件之前转换为字符串。所以在文件中这个数据只是文本。里面也可能有类似“Hello world”的东西。

    如何转换:

      

    00000001030001000151CD0203000100015D1E00000406001000545E5C00000001030001000151CD0203000100015D1E00000406001000545E5C00000001030001000151CD0203000100015D1E00000406001000545E5C00000001030001000151CD0203000100015D1E00000406001000545E5C00000001030001000151CD0203000100015D1E00000406001000545E5C00000001030001000151CD0203000100015D1E00000406001000545E5C00000001030001000151CD0203000100015D1E00000406001000545E5C00000001030001000151CD0203000100015D1E00000406001000545E5C

    我想找到从“0103”开始的部件(它是设备地址),然后在“0103”之前加上“\ n”,然后在后面的四个字符之后放入另一个空格和文本“这是设备编号1”:

    进入:

      

    000000 0103“这是设备编号   一个“0001000151CD0203000100015D1E00000406001000545E5C000000 0103”这个   是设备号   一个“0001000151CD0203000100015D1E00000406001000545E5C000000 0103”这个   是设备号   一个“0001000151CD0203000100015D1E00000406001000545E5C000000 0103”这个   是设备号   一个“0001000151CD0203000100015D1E00000406001000545E5C000000 0103”这个   是设备号   一个“0001000151CD0203000100015D1E00000406001000545E5C000000 0103”这个   是设备号   一个“0001000151CD0203000100015D1E00000406001000545E5C000000 0103”这个   是设备号   一个“0001000151CD0203000100015D1E00000406001000545E5C000000 0103”这个   设备编号为“0001000151CD0203000100015D1E00000406001000545E5C

    整个程序用于监听Modbus RTU线路,记录目的。

1 个答案:

答案 0 :(得分:0)


def adjustString(deviceNumber):
    newData = str.replace(data, deviceNumber, '\n' + deviceNumber + ' this was device number one')
    return newData

with open('data.txt', 'r') as myfile:
    data=myfile.read().replace('\n', '')

output = adjustString('0103')



然后,您可以根据需要将新字符串写入文件。


with open('data.txt') as f:
    f.write(output)