亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python實現批量獲取指定文件夾下的所有文件的廠商信息

系統 1931 0

本文實例講述了python實現批量獲取指定文件夾下的所有文件的廠商信息的方法。分享給大家供大家參考。具體如下:

功能代碼如下:

            
import os, string, shutil,re 
import pefile 
import codecs, sys 
import wx 
import struct 
#輸出中打印Unicode字符 
#sys.stdout = codecs.lookup('utf-8')[-1](sys.stdout) 
 
def addToDict(theDict,PEfile_Path,strCompanyName): 
  theDict.setdefault(PEfile_Path, [ ]).append(strCompanyName)
  #存在就在基礎上加入列表,不存在就新建個字典key 
 
def IsPeFile(inputFileName): 
  '''''判斷一個文件是否為PE文件''' 
  file = open(inputFileName, 'r') 
  dosSign = hex(struct.unpack("h",file.read(2))[0]) 
  if (dosSign == "0x5a4d"): 
    file.seek(0x3c) 
    date_fNew = struct.unpack("l",file.read(4))[0] 
    file.seek(date_fNew) 
    peSign = hex(struct.unpack("h",file.read(2))[0]) 
    if (peSign == "0x4550"): 
      return 1 
    else: 
      return 0 
  else: 
    return 0  
   
#得到一個文件的廠商信息 
#輸入:文件路徑 
#輸出:字典 
def getCompanyName(PEfile_Path): 
  if not IsPeFile(PEfile_Path): 
  return {} 
  else: 
  dictCompany = {} 
  pe = pefile.PE(PEfile_Path)  
  p = re.compile('''''CompanyName:(.+)''') 
  for name in p.findall(pe.__str__()): 
    uniCompanyName = name.replace('\\x', '\\u').strip() 
    #strTemp = uniCompanyName.decode('unicode_escape') 
    addToDict(dictCompany, PEfile_Path, uniCompanyName) 
     
  writeDicToFile(dictCompany) #寫入文件 
  return dictCompany 
 
#得到文件夾中所有文件的廠商信息 
#輸入:文件夾路徑 
#輸出:字典 
def getCompanyNameFromDir(dir, dir_callback=None, file_callback=None): 
  dictAll = {} 
  for root, dirs, files in os.walk(dir): 
    for f in files: 
      file_path = os.path.join(root, f) 
      if file_callback: file_callback(file_path) 
      dictAll.update(getCompanyName(file_path)) 
       
  return dictAll 
 
def writeDicToFile(dicName, outputFileName="company.txt"): 
  """將字典寫入文件中""" 
  fileOutput = open(outputFileName, "a+") 
  for key, value in dicName.items(): 
    strTemp2 = '' + value[0] 
    strChina2 = strTemp2.decode('unicode_escape') 
   
  try: 
    fileOutput.write("%-*s" % (110, key)) 
    fileOutput.write(strChina2.encode('gb2312')) 
  except UnicodeEncodeError, e: 
    pass 
    fileOutput.write("\n") 
   
  fileOutput.close() 
   
#主函數 
if __name__ == "__main__": 
  getCompanyNameFromDir(u"D:\\everydaySample\\1221\\10white") 
  print "ok finish" 


          

這里不解釋,代碼很簡單.

出現的問題如下:

1. 寫入中文.str.encode('gb2212')解決
2. 出現UnicodeEncodeError 的錯誤,用了try給忽略了

希望本文所述對大家的Python程序設計有所幫助。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久com| 成人看片免费无限观看视频 | 天天综合色天天综合网 | 亚洲精品久久玖玖玖玖 | 桃子在线观看 | 97视频免费观看 | 2345成人高清毛片 | 亚洲已满18点击进入在线观看 | 99在线热视频只有精品免费 | 久久99国产乱子伦精品免 | 久久爱www成人 | 一线毛片| 九色视频极品论坛区 | 免费看欧美日韩一区二区三区 | 日本αv | 国产精品久久久久秋霞影视 | 久草视频资源在线 | 亚洲一区二区三区在线免费观看 | 亚洲不卡在线观看 | 日日夜夜操视频 | 国产精品女仆装在线播放 | 四虎精品影院永久在线播放 | 久久成人免费观看全部免费 | 精品视频自拍 | 五月激情六月婷婷 | 99久久99久久精品免费看子 | 俺来也欧美亚洲a∨在线 | 国产成人毛片亚洲精品不卡 | 寡妇一级a毛片免费播放 | 国产精品一区在线观看 | 在线欧美| 久草久操 | 深夜免费网站 | 2021国产精品自产拍在线观看 | 天堂精品视频 | 国产成人精品一区二区三区 | 天天干夜夜做 | 狠狠狠狼鲁欧美综合网免费 | 亚洲精品不卡午夜精品 | 国产精品2020观看久久 | 日本一区二区三区在线播放 |