如何将在不同文件夹下的批量plt文件转换为txt文件--python
程序员文章站
2022-04-21 21:45:00
...
1.背景
在做毕设实验的时候,需要大量的轨迹数据集。其中有一部分数据集的格式为plt,想查看其中内容,却发现还需要下载其他软件才可以打开。多麻烦~~,倒不如直接把他转换为txt文件,也方便后续实验。
2.转换方法
2.1 单个plt文件转换为txt文件
代码很简单,打开文件,读取内容,再将读取的内容写入新的文件即可。当然,手动改个文件名后缀也是可以的
#文件路径
fread="C:\\Users\\**.plt"
#打开文件
fp=open(fn,'r+')
#获取文件内容
lines=fp.readlines()
#关掉读入
fp.close()
l_list=lines[:]
#写入路径
fwrite='C:\\Users\\**.txt'
#追加写
fp=open(fw,'w+')
#将每一行写进去
for line in l_list:
fp.write(line)
#关掉写入
fp.close()
2.2不同文件夹下大量plt文件如何修改呢
其实主要问题也就是要走通所有的子目录,然后每一个按照2.1中去做就好了。(细节可以 看代码注释)
import os
#文件夹根目录
file_dir = "C:\\Users\\Administrator\\Data"
#os.walk()方法就是以当前路径为根目录递归遍历其所有子目录,返回值类型分为str,list,list,含义分别是当前根目录,目录文件列表,非目录文件列表
for root,dirs,files in os.walk(file_dir):
for file_name in files:
#找到以plt结尾的文件
if file_name.endswith('.plt'):
#读取plt文件内容
rpath = root +"\\"+file_name
fread = open(rpath,'r+')
lines = fread.readlines()
fread.close()
l_list = lines[:]
#将文件内容转换至txt
#这里我是想将所有的txt文件存放至'C:\\Users\\Administrator\\Data'中
root_list = list(root)
root_list.insert(root.find('Data')+4,'intxt')
wpath = ''.join(root_list)
#如果改文件夹不存在,则创建文件夹(因为plt还有很多上级目录,所以使用makedirs)
if not os.path.exists(wpath):
os.makedirs(wpath)
#写入
wpath += "\\"+ file_name[:len(file_name) - 3] + 'txt'
fwrite = open(wpath, 'w+')
for line in l_list:
fwrite.write(line)
fwrite.close()
3.总结
代码很简单,但是如果换成人工操作那几万个plt文件,那可是要费点力气的。我使用python也不多,权当代码练习了吧!
下一篇: java 动态代理的使用