Python脚本初窥——教你写一个文字处理脚本程序

本文介绍了一个使用Python脚本自动处理HFSS电磁仿真输出的.txt文件,将其转换为Matlab可以直接读取的数据格式,极大地提高了工作效率。通过简单的脚本程序,用户可以在当前目录下自动处理所有.txt文件,去除不必要的信息,实现数据的无缝导入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

笔者从事的工作经常使用HFSS进行电磁仿真,仿真得到的结果经常需要导入到Matlab中使用,而HFSS输出的数据格式和Matlab格格不入,给我增加了很多工作量,考虑到最近在自学python,很多大牛都在用它来处理文本,我想应该可以通过它方便的处理我的数据。简单的脚本程序代码如下:

#2012.2.22
#Get all HFSS's Export files and change the format to matlab data file 
import os 
path = os.getcwd()  #Get the current work address 
files = os.listdir(path)  #Get the file list
for f in files:
    N=len(f);
    if f[N-3]=='t' and f[N-2]=='x' and f[N-1]=='t':
        fp = open(f,'r')
        words=fp.read()
        fp.close()
        fp = open(f,'w')
        m=len(words)
        for i in range(0,m-1):
            if words[i+1]=='.' and words[i]<='9' and words[i]>='0':
                fp.write(words[i:m])
                break
            fp.close()
            print f

使用起来很简单,在HFSS中,输出数据使用*.txt格式,之后在该文本文件所在目录运行该脚本,原理生成的txt文件中的无用信息就被去掉了,可以被matlab直接读取了。该脚本可以自动处理所在目录下的所有txt文件,方便又快捷!初步了解了python脚本的强大!

以上程序只是寻找了当前目录下的所有txt文件,将HFSS生成的txt数据文件前面的文字描述去掉,但是还是要一点一点敲代码,把数据读取到matlab中,为了省掉最后一点功夫,对以上代码进行修改,运行修改后的脚本后,会在剪片版中自动生成matlab语句,将所有文本文件中的数据载入到matlab在。修改版的代码如下:

#Edit By Jeff Xu jeff890309@gmail.com
#2012.2.22
#Get all HFSS's Export files and change the format to matlab data file 
#Vision 1.2
#Creat m file to plot the rusult
import os  
import win32clipboard as wincb
import win32con
Code0="p" 
Code1="load('"
Code=""
k=0;
wincb.OpenClipboard()  #open ClipBoard
wincb.EmptyClipboard() #clear ClipBoard
path = os.getcwd()  #Get the current work address 
files = os.listdir(path)  #Get the file list
for f in files:
    N=len(f);
    if f[N-3]=='t' and f[N-2]=='x' and f[N-1]=='t':
        fp = open(f,'r')
        words=fp.read()
        fp.close()
        fp = open(f,'w')
        m=len(words)
        for i in range(0,m-1):
            if words[i+1]=='.' and words[i]<='9' and words[i]>='0':
                fp.write(words[i:m])
                break

        fp.close()
        print f

        k=k+1

        Code=Code+'p'+str(k)+"=load('"+path+'\\'+f+"');"
wincb.SetClipboardData(win32con.CF_TEXT,Code) 
wincb.CloseClipboard()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值