Python脚本完成VCS文件的file_list到.prj文件的转化

本文介绍了作者实习期间使用Python编写的脚本,该脚本能将VCS文件的file_list转化为.prj文件,适用于FPGA综合运行。主要涉及字符串操作、文件读写以及执行Linux指令。在编写过程中,遇到并解决了因按行读取文件导致的末尾换行问题。

Python脚本完成VCS文件的file_list到.prj文件的转化

Python脚本功能介绍

转眼间已经实习了一个多月了,想想我也是职场人士了,哈哈。介于现在所触及的知识信息杂乱繁多,所以本人决定写写博客来记录自己的学习过程,以及一些所做的项目总结。如果出现错误,希望大家多多指出,共同进步!
废话不多说,首先介绍一下该Python脚本的功能。由于前段传过来的VCS文件是以路径的形式存放的,需要文件的内容,做一些诸如切割,加前缀后缀字符串等工作,所生成的.prj文件才能在synplify上进行综合运行。

Python语法

该脚本所用的语法知识比较简单,但由于本人水平比较菜,就算提前接触过Python,但也花费 了较多时间来查一些函数等等。

  1. 用到的Python模块也比较简单,包含两个time与os
    import time
    import os
    
    print time.strftime("%Y-%M-%S %H:%M:%S", time.localtime())  //打印当前日期时间
    os.path.exists("file_path")  //判断文件路径file_path所指的文件或目录是否存在,存在返回True
    os.path.abspath(_file_)  //获取文件_file_绝对路径
    
  2. 字符串操作
    str.find() //字符串查找
    str.split()  //字符串切割,返回切割后的列表
    str.endswith(".py") //判断字符串是否已.py结尾,真返回True
    str.strip() //去除字符串空格、换行等字符
    str.replace()  //字符串替换
    print(“hello” + “world”)  //字符串拼接
    
  3. 文件操作
    f1 = open(file_path1, "r"//打开文件、只读
    f2  = open(file_path2, "w")  //只写
    file_lines = f1.readlines()
    for line in file_lines :   //按行读
    	print(line)
    
    f2.write()   //文件写
    
    f1.close()
    f2.close()
    
  4. 未知大小列表赋值,平时所用的列表都是已知大小的,这里需要将文件逐行读取存入列表中,所以列表大小未知。
    list = []
    file_lines = f1.readlines()
    for line in file_lines :   
    	list.append(line)
    list = list.sort()  //列表排序(按字母)
    
  5. Python上执行Linux指令
    os.system("command")  //linux上执行command命令
    os.popen("command").rend()  //在Linux上执行命令后的结果返回Python中
    

问题总结

期间遇到的最大问题就是按行读取文件进行一系列处理后存入列表中,之后读取列表各字符串元素进行操作时最后一行都具有额外的换行操作,造成了后面写入或打印最后发生换行。其中原因就是按行读取文件时 ,每一行结束隐含了换行符也会被读取,需要进行str.strip()进行删除换行符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值