让python读的文件应该放在哪,python对文件的读写操作方式
Python基本文档操作
在文档中读取:
f=打开( test.txt , r )
写入文档:
F=打开( output.txt , w )
立正!如果你想阅读文档,但是你写错了关键字,把‘r’写成‘w’并运行程序,那么你的文档就会变成空白,因为你什么都没写。
修改文档中指定行的内容:
例如,您使用代码自动生成文本和符号,但由于格式要求,许多符号成对出现,文本生成后很难返回。比如我就遇到过这种情况:
背景:
yolo自动检测视频中的行人时,会得到每一帧的帧数和行人的坐标,然后这些坐标需要读入VOTT(一个视频标注工具)进行微小的修正,所以需要转换成json格式,再转换成json格式.要知道,括号,花括号,逗号是不会错的。我终于做出了自动格式转换的功能,也就是从
收件人:
大家可以看到,我已经用json格式表达了每一帧每一个行人的坐标,但是格式转换后出现了问题。在倒数第二行,有一个额外的逗号:
不要把它看做只是一个小逗号,但是有了这个逗号,VOTT就读不出来了,没有逗号也读成功了,所以编程也是一项细致的工作~ ~
不就是个逗号吗?删了就OK啦~ ~
我也是这么想的,但是交给我的同事不这么想,坚持要我自动去掉这个逗号,于是就有了今天的分享~
实现
首先创建两个文件读取函数f1和f2,f1负责读取文件信息,f2负责写入新的文件信息,通过读写可以修改指定的内容。F1先读这个json文档,然后逐行读。如果不需要修改这行内容,直接发送到新文件中;如果这一行的内容需要修改,可以直接修改,也可以通过文本替换来修改(为满足不同程序的自适应要求,多采用文本替换)。设置要替换的文本old_str和新文本new_str,替换内容,完成其他行的文件读写。
源代码如下:
导入操作系统
file=output.json
old_str=}],
new_str=}]
#因为我只想删除最后一个逗号,所以新字符串比旧字符串少了一个逗号。
#在这里,确保你只匹配你要改变的字符串,否则满足条件的整行都会被替换。
def alter(文件,旧字符串,新字符串):
Total_count=0 #文档中的总行数。
Count=0 #目标行数
用open(file)作为f:
对于f中的行:
总计数=总计数1
用open(file, r ,encoding=utf-8 )作为f1,\
打开( %s.bak % file, w ,encoding=utf-8 )作为f2:
对于f1中的行:
计数=计数1
If==total _ count-2:如果当前行是倒数第三行,则执行替换操作。
如果old_str在第行:
line=line.replace(旧字符串,新字符串)
f2 .写(行)
否则:
f2 .写(行)
os.remove(文件)
os.rename(%s.bak % file,file)
好了,于是自动格式转换愉快地实现了,可以直接被VOTT识别~
最后放上一张VOTT加载的YOLO探测到的行人坐标截图:
欢迎来到“pyhon的修炼之道”,我们会持续更新新鲜的python相关文章~
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。