最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python实现批量获取指定文件夹下的所有文件的厂商信息

来源:动视网 责编:小采 时间:2020-11-27 14:31:07
文档

python实现批量获取指定文件夹下的所有文件的厂商信息

python实现批量获取指定文件夹下的所有文件的厂商信息:本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法。分享给大家供大家参考。具体如下: 功能代码如下: import os, string, shutil,re import pefile import codecs, sys import wx import struct
推荐度:
导读python实现批量获取指定文件夹下的所有文件的厂商信息:本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法。分享给大家供大家参考。具体如下: 功能代码如下: import os, string, shutil,re import pefile import codecs, sys import wx import struct


本文实例讲述了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(" ") fileOutput.close() #主函数 if __name__ == "__main__": getCompanyNameFromDir(u"D:\everydaySample\1221\10white") print "ok finish"

这里不解释,代码很简单.

出现的问题如下:

1. 写入中文.str.encode('gb2212')解决
2. 出现UnicodeEncodeError 的错误,用了try给忽略了

希望本文所述对大家的Python程序设计有所帮助。

文档

python实现批量获取指定文件夹下的所有文件的厂商信息

python实现批量获取指定文件夹下的所有文件的厂商信息:本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法。分享给大家供大家参考。具体如下: 功能代码如下: import os, string, shutil,re import pefile import codecs, sys import wx import struct
推荐度:
标签: 信息 文件 批量
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top