栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【原创】Python创建list文件

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【原创】Python创建list文件

文章目录
  • 引言
  • 代码块
  • Python语句

引言

最近老师鼓励写脚本,仿真自动化,所以就立马向大师兄要了一些资源,学了半小时Python,迫不及待想写一些自己的脚本。modelsim仿真自动化需要写.do文件,vlog编译文件一个一个编译太麻烦,所以需要生成文件,把需要编译的文件路径写进生成的文件中。老师用C写了100多行代码实现了上面的功能,所以我想用Python写一个简单的脚本实现上面的功能。

代码块
#==================================================================
#作者:    stone
#时间:    2021.10.1           
#功能描述:生成特定文件类型的list文件,路径可以为相对路径或绝对路径 
#==================================================================

import os
#==================================================================
#                     可修改参数
#==================================================================
filelist = 'filelist'   #生成.f的名字
type_1   = True        #TRUE:绝对路径    FALSE:想对路径
cnt      = 2            #相对级数
file_end = '.f'         #生成文件的后缀  
find_type= '.v'         #生成list的文件类型
bar_type = '\'         #斜杠方向
#==================================================================

filedir = os.getcwd()   #当前.py文件路径
stone = open(filelist+file_end,'w')  #建立文件

for root,dirs,files in os.walk(filedir): #遍历
    for name in files:
        if name.endswith(find_type):
            if type_1:#绝对路径
                stone.write(root +bar_type+ name + 'n')  #写路径
            else:#相对路径
                stone.write(root.replace(filedir + bar_type,('..'+bar_type)*cnt)+bar_type+ name + 'n')

stone.close()#关闭文件

要说明的一点是,这里的相对路径是相对.do文件的路径,相对路径也是写死的,也就是说.py文件和.do文件的目录级数是一定的,我这里是差了2级,所以×2,如果级数变了,需要手动改cnt 参数。我也想过不写死的方法,利用relpath函数从.do文件所在目录开始计算相对路径,也实现了。但是发现每个人的.do路径都不一样,移植性太差,也想过遍历查找.do文件路径,但是这样只能有一个.do文件,无论怎么做都相当于画蛇添足,没有必要。综合考虑还是采用这种方法。

遍历.v文件也是从当前.py目录开始遍历,也就是说为了能够遍历所有的.v文件,需要把这个脚本放在和存放.v文件的文件夹同级目录下。代码逻辑很简单,而且有注释,所以就不怎么讲了。因为刚学Python,所以下面写一下用到的函数,巩固一下。

Python语句

import:导入命令,可以导入模块,也可以导入包,本人看来相当于C的include。模块相当于实现某一个功能的.py文件。而包相当于模块和子包的集合,模块和包就本人看来相当于C的头文件。

os:这个模块提供了很多与操作系统相关的函数,执行os模块的函数相当于进行了操作系统命令,执行函数:os.函数名。里面函数有很多,我也没用到多少,所以就简单讲一下用到的函数。
os.getcwd():获得当前.py文件的路径,没有参数,返回的路径是绝对路径。
os.walk(path):这个函数厉害了,功能就是遍历当前目录下的所有文件。返回三个参数:
root:当前所在目录
dirs:当前目录下的文件夹
files:当前目录下的文件,有多个文件会组成一个列表
这个函数会一层一层遍历下去,也就是说files永远是文件,所以只需要判断files中是否有自己想要找的文件类型,文件类型通过**endswith()**来判断。

endswith():判断字符串的后缀是不是和参数一样,一样的话返回True,否则返回False,用这种方法判断当前文件是不是要找到文件类型。

open():用于打开文件,并设置读写方式,这里只用到了w,表示只写模式。有好多参数,这里就不介绍了。没有文件就建立这个文件,并返回这个文件的句柄。

write():用于写文件,字符串直接相连可以用 +号

replace():用于字符串替换。root.replace(old,new):表示在root这个字符串中把old字符串替换成new这个字符串


本人Python刚学,所以上面函数肯定理解的不到位,所以如果想深入了解上面的函数建议大家去这个网站https://www.runoob.com/python3/python3-os-path.html,也请大家积极批评!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286561.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号