python实现批量获取指定文件夹下的所有文件的厂商信息
2014-09-28 11:51
1006 查看
功能代码如下:
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程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- python实现批量获取指定文件夹下的所有文件的厂商信息
- python_批量获取指定文件夹下的所有文件的厂商信息
- 【答疑】| python实现批量存储文件信息到指定文件
- Python 批量删除文件夹下面指定类型的所有文件
- python 获取指定文件夹下所有文件名称并写入列表的实例
- iOS小技巧 - 获取指定文件夹下的所有相对路径(包括子文件夹路径),并实现指定文件夹下的所有文件的全部移动
- java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码
- python 3.6 脚本 : 获取指定文件夹下面的所有文件
- python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏。 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小
- Java 实现获取指定文件夹下的指定格式的所有文件
- python 获取指定文件夹下所有文件名称并写入列表
- java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码
- Python 批量删除文件夹下面指定类型的所有文件
- Python 小工具--实现获取文件夹下面所有文件操作
- Installshield x:实现序列号检验,获取用户信息并写入指定_ini文件1 - 子夜 MySpace聚友博客
- C#两种方式获取指定文件夹下所有子目录及文件
- C#.NET获取指定文件夹下所有的指定类型文件
- vb实现获取指定目录内的所有文件(包括子目录)
- C#.net获取指定文件夹下的所有jpg文件,并按文件创建时间排序
- 得到指定文件夹内所有文件的相关信息