国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python實(shí)現(xiàn)批量獲取指定文件夾下的所有文件的廠商信息

2019-11-25 18:10:48
字體:
供稿:網(wǎng)友

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

功能代碼如下:

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)  #存在就在基礎(chǔ)上加入列表,不存在就新建個(gè)字典key  def IsPeFile(inputFileName):   '''''判斷一個(gè)文件是否為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     #得到一個(gè)文件的廠商信息 #輸入:文件路徑 #輸出:字典 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()    #主函數(shù) if __name__ == "__main__":   getCompanyNameFromDir(u"D://everydaySample//1221//10white")   print "ok finish" 

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

出現(xiàn)的問題如下:

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

希望本文所述對大家的Python程序設(shè)計(jì)有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 滨海县| 汾阳市| 班玛县| 布拖县| 平陆县| 广东省| 宣化县| 抚远县| 昌都县| 安仁县| 青神县| 康定县| 治县。| 扎鲁特旗| 百色市| 洛隆县| 儋州市| 资溪县| 九江县| 拉萨市| 丹东市| 壤塘县| 南部县| 藁城市| 龙井市| 临汾市| 濮阳县| 洪江市| 改则县| 平安县| 桃园县| 凤庆县| 大理市| 庆城县| 临朐县| 时尚| 宁远县| 南安市| 比如县| 台北县| 广西|