循环中的ord函数执行

时间:2012-12-07 06:45:43

标签: python zipper

我有两个文件夹,每个文件夹包含196个文件,它们都是('\xae\xae\xb4\x9e\x8f\x9f\xba\xc1\xd5\xbd\xcd\xa1\xb7\')格式。我试图读取这些数据将其转换为人类可读的形式。我想结合2文件夹的两个文件的数据。

我尝试使用ord()函数,但在尝试使用预期输出检索单个文件时,我得到了错误的值。我试图提取读取的第一个元素,但我得到的输出是所有文件的forst值。 这是我的代码:

for file_name, files in izip(list_of_files, list_of_filesO):
     fi = open(file_name,"r").read()
     fo = open(files,"r").read()
     f =  [open("/home/vidula/Desktop/project/ori_tri/input_%i.data" %i,'w')for i in range(len(list_of_files))]
     read = [ord(i) for i in fi]
     reado = [ord(i) for i in fo]
     zipped = zip (read,reado)
     print read[0]

预期产出:

125,25
36,54
98,36
78,56

感谢您的期待。

1 个答案:

答案 0 :(得分:0)

[ord(i) for i in fi]

迭代文件迭代文件的行。听起来你想要一次迭代一个角色。为此,您可以尝试将每个文件显式read作为单个块,然后迭代生成的字符串。

如果您不想将整个文件内容放在内存中,可以尝试制作自定义迭代器,例如:

def each_char_of(a_file):
    while True:
        x = a_file.read(1)
        if not x: return
        yield x