单独的文件中

时间:2017-11-08 14:59:08

标签: python python-3.x

我有以下问题,有一个函数可以读取一个大文件(少量Mb),内容如下:

0x05 0x00 0x00 0x00 0xCF 0x00 0x00 0x00 ; ..........
0xCF 0x00 0x00 0x00 0x22 0x00 0x00 0x00 ; ......"...
0x51 0x84 0x07 0x00 0x02 0x00 0x01 0x00 ; ..Q.......

我的函数必须只读取十六进制值,并忽略“;”跟随字符直到行尾。

第一行的数据我需要的是

“0x05 0x00 0x00 0x00 0xCF 0x00 0x00 0x00”

我尝试了两种方法,一种是带有此功能的单独文件

def ReadFileAsList(fileName):

    fileName = "2Output.txt"
    fileContentStr = ""
    with open(fileName,'r') as f:
        for line in f:
            fileContentStr += line.split(';')[0]

    fileContentList = fileContentStr.split()
    return fileContentList

和第二种方法,当这些行直接在我的主.py文件中

fileName = "2Output.txt"
fileContentStr = ""
with open(fileName,'r') as f:
    for line in f:
        fileContentStr += line.split(';')[0]

fileContentList = fileContentStr.split()

第二种方法非常快,第一种方法(在单独的文件中使用单独的功能)非常慢,我缺少什么? 谢谢你的提示

1 个答案:

答案 0 :(得分:1)

存储局部变量比全局变量更快。局部变量存储在固定大小的数组中,全局变量存储在真正的字典中。

以下是更深入answer

的链接