python訊號學習相關

2021-10-14 04:01:52 字數 4385 閱讀 5979

以下是工作中用python來處理excel檔案裡的訊號學習內容的**

由於**可讀性很差,不建議作為excel通用處理類的參考

from collections import namedtuple

import xlrd

import xlwt

from xlwt.compat import

basestring

class

excel

(object):

# 1.初始化

def__init__

(self,filename)

: self.filename = filename

self.workbook = xlrd.open_workbook(self.filename)

self.sheets = self.workbook.sheet_names(

) self.sheets_cache =

self.cells =

self.vamip =

# self.wk_vam_out =

# 工位口對應的vam和out

self.wk_names =

# 工位口列表

self.init(

)# 2.初始化函式

definit

(self)

:for name in self.sheets:

self.sheets_cache[name]

= self.read_sheet(name)

for row_data in self.sheets_cache[sheet_vamout]

:if row_data.vamname not

in self.vamip:

self.vamip[row_data.vamname]

= row_data.vamip

vam_out =

(row_data.vamname,row_data.outport)

wk = row_data.outcable

if wk and wk not

in self.wk_vam_out:

self.wk_vam_out[wk]

=[vam_out]

elif wk and vam_out not

in self.wk_vam_out[wk]

: self.wk_vam_out[wk]

self.wk_names = self.wk_vam_out.keys(

)for row_data in self.sheets_cache[sheet_vamin]

:# 3.讀取標籤頁

defread_sheet

(self,sheet_name)

:"""

# 讀取excel標籤頁內容

:param sheet_name: sheet名字

:return: nametuple列表

"""lines =

if sheet_name == sheet_vamout:

title_cn = title_out

elif sheet_name == sheet_vamin:

title_cn = title_in

else

:return lines

sht = self.workbook.sheet_by_name(sheet_name)

nrows = sht.nrows

print

(sheet_name,nrows)

titles = self.lst_strip(sht.row_values(0)

) titles =

[title_cn[field]

for field in titles]

row = namedtuple(

"row"

,titles)

for row_idx in

range(1

,nrows)

: data = sht.row_values(row_idx,start_colx=

0,end_colx=

len(titles)

) data = self.lst_strip(data)

row_data = row(

*data)

return lines

# 4.查詢strip

deflst_strip

(self,lst)

: _lst =

[item.strip()if

isinstance

(item,

basestring

)else item for item in lst]

_lst =

[item if item else

''for item in _lst]

return _lst

# 5.獲取sheet內容

defsheet

(self,sheet_name)

:"""

獲取sheet內容

:param sheet_name:sheet名字

:return: nametuple列表

"""if sheet_name not

in self.sheets_cache:

self.sheets_cache[sheet_name]

= self.read_sheet(sheet_name)

return self.sheets_cache[sheet_name]

# 6.vam列表

defcell_in_vam

(self,vam_names)

:"""

:param vam_names: vam列表

:return: nametuple列表

"""rows =

for vam_name in vam_names:

for cell in self.cells:

if vam_name == cell.vamname:

# 7.vam名字

defvam_ip

(self,vam_name)

:"""

:param vam_name:vam名字

:return: vam ip

"""return self.vamip[vam_name]

# 8.獲取vam名字列表

defvams

(self)

:"""

獲取所有vam名字列表

:return: 包含所有vam的list

"""return

sorted

(self.vamip.keys())

# 9.獲取小區名字

defget_cell_by_cellname

(self,cell_name)

:"""

:param cell_name:小區名

:return: 包含小區資訊的nametuple

"""for cell in self.cells:

if cell.cellname == cell_name:

return cell

# 10.獲取小區資訊

defget_cell_by_vamin

(self,vam,inport)

:"""

:param vam:vam名字

:param inport: in口

:return: 包含小區資訊的nametuple

"""for cell in self.cells:

if cell.vamname == vam and

int(cell.inport)

==int

(inport)

:return cell

return

none

# 11.工位口

defget_vam_out_by_workstation

(self,wk)

:"""

:param wk:工位口

:return: [(vam1,1),(vam2,1)]

"""ret =

for wk_name in self.wk_names:

if wk not

in wk_name:

continue

vam_out = self.wk_vam_out[wk_name]

for vo in vam_out:

if vo in ret:

continue

return ret

python 訊號量 python學習之訊號量

01 訊號量 1 概述 訊號量是用來控制線程併發數的。2 原理 boundedsemaphore和semaphore管理乙個內建的計數器。每當資源釋放遞增時 呼叫acquire 計數器 1,資源消耗時遞減 呼叫release 計數器 1。3 呼叫格式 threading.boundedsemapho...

訊號相關概念

我記得我在程序間通訊的時候說到過一種方式 訊號量 終止在linux命令列上正在執行的可執行程式所用的ctrl c,也屬於一種訊號 是常見sigint訊號 所以,今天我想具體分享一下與訊號相關的一些概念。linux中訊號共有64個,常見訊號量只有31個,利用kill l命令就可以用來檢視全部訊號,如下...

TTL RGB訊號相關

圖2 雙畫素 雙路 rgb資料傳送方式各訊號之間的定時關係。de訊號 有效資料選通訊號 de訊號與行場同步訊號之間的關係 de訊號與行場同步訊號之間的定時關係如圖2所示 以1024 768液晶面板為例 圖 a 所示為de與行同步訊號之間的定時關係 圖 b 所示為de與場同步訊號之間的定時關係。圖 b...