我需要使用Python进行一些文本文件格式化。我有来自串口的数据,所有文件都在一个文件中,一个接一个。我知道如何在文件中查找和替换文本,但我需要做这样的事情:
如何获取文件中找到的字符串的位置?
例如,文件中的数据是这样的:
(这基本上是来自串口的十六进制数据,但在保存到文件之前转换为字符串。所以在文件中这个数据只是文本。里面也可能有类似“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线路,记录目的。
答案 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)