python学习之一

ASIC 设计中经常处理一些文本, 常用的脚本语言Perl, python都可以胜任, 但是我更偏向于python, 语法简单易懂, 没有perl那么多奇奇怪怪的符号。

本篇就来记录一些常用的python基础知识加以备忘。

  • python字符的大小写转换
1
2
3
4
5
str = "www.runoob.com"
print(str.upper()) # 把所有字符中的小写字母转换成大写字母
print(str.lower()) # 把所有字符中的大写字母转换成小写字母
print(str.capitalize()) # 把第一个字母转化为大写字母,其余小写
print(str.title()) # 把每个单词的第一个字母转化为大写,其余小写
  • python获取当前系统时间
1
2
import time
print time.time()

输出的结果是:

1279578704.6725271

但是这样是一连串的数字不是我们想要的结果,我们可以利用time模块的格式化时间的方法来处理:

time.localtime(time.time())

用time.localtime()方法,作用是格式化时间戳为本地的时间。

输出的结果是:

time.struct_time(tm_year=2010, tm_mon=7, tm_mday=19, tm_hour=22, tm_min=33, tm_sec=39, tm_wday=0, tm_yday=200, tm_isdst=0)

现在看起来更有希望格式成我们想要的时间了。

1
time.strftime('%Y-%m-%d',time.localtime(time.time()))
  • python 获取某个目录的文件列表:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/python

import os
mypath1 = '../src/core/'
mypath2 = '../src/system/'
file_rtl = "../filist/filist_rtl.f"
file_obj = open(file_rtl, 'w')
for root, dirs, files in os.walk(mypath1):
for file in files:
if file.endswith(".v")or file.endswith(".sv"):
rel_path = os.path.join(root,file)
file_obj.write(rel_path+'\n')

for root, dirs, files in os.walk(mypath2):
for file in files:
if file.endswith(".v")or file.endswith(".sv"):
rel_path = os.path.join(root,file)
file_obj.write(rel_path+'\n')


file_obj.close()

产生的file list 如下所示:

1
2
3
4
5
6
7
8
9
10
11
../src/core/m14k_cscramble_stub.v
../src/core/m14k_clockandlatch.v
../src/core/m14k_clockxnorgate.v
../src/core/m14k_cscramble_tpl.v
../src/core/m14k_top.v
../src/core/m14k_bistctl.v
../src/core/ram_dual_port.v
../src/core/m14k_glue.v
../src/core/m14k_gf_mux2.v
../src/core/m14k_clock_buf.v
../src/core/m14k_alu_dsp_stub.