欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何将在不同文件夹下的批量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也不多,权当代码练习了吧!