Python脚本完成VCS文件的file_list到.prj文件的转化
Python脚本功能介绍
转眼间已经实习了一个多月了,想想我也是职场人士了,哈哈。介于现在所触及的知识信息杂乱繁多,所以本人决定写写博客来记录自己的学习过程,以及一些所做的项目总结。如果出现错误,希望大家多多指出,共同进步!
废话不多说,首先介绍一下该Python脚本的功能。由于前段传过来的VCS文件是以路径的形式存放的,需要文件的内容,做一些诸如切割,加前缀后缀字符串等工作,所生成的.prj文件才能在synplify上进行综合运行。
Python语法
该脚本所用的语法知识比较简单,但由于本人水平比较菜,就算提前接触过Python,但也花费 了较多时间来查一些函数等等。
- 用到的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_绝对路径 - 字符串操作
str.find() //字符串查找 str.split() //字符串切割,返回切割后的列表 str.endswith(".py") //判断字符串是否已.py结尾,真返回True str.strip() //去除字符串空格、换行等字符 str.replace() //字符串替换 print(“hello” + “world”) //字符串拼接 - 文件操作
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() - 未知大小列表赋值,平时所用的列表都是已知大小的,这里需要将文件逐行读取存入列表中,所以列表大小未知。
list = [] file_lines = f1.readlines() for line in file_lines : list.append(line) list = list.sort() //列表排序(按字母) - Python上执行Linux指令
os.system("command") //linux上执行command命令 os.popen("command").rend() //在Linux上执行命令后的结果返回Python中
问题总结
期间遇到的最大问题就是按行读取文件进行一系列处理后存入列表中,之后读取列表各字符串元素进行操作时最后一行都具有额外的换行操作,造成了后面写入或打印最后发生换行。其中原因就是按行读取文件时 ,每一行结束隐含了换行符也会被读取,需要进行str.strip()进行删除换行符。
本文介绍了作者实习期间使用Python编写的脚本,该脚本能将VCS文件的file_list转化为.prj文件,适用于FPGA综合运行。主要涉及字符串操作、文件读写以及执行Linux指令。在编写过程中,遇到并解决了因按行读取文件导致的末尾换行问题。
1144

被折叠的 条评论
为什么被折叠?



