2012-12-07 4 views
0

두 개의 폴더가 있고 각 폴더에는 196 개의 파일이 들어 있습니다.이 파일은 모두 ('\xae\xae\xb4\x9e\x8f\x9f\xba\xc1\xd5\xbd\xcd\xa1\xb7\') 형식입니다. 이 데이터를 사람이 읽을 수있는 형식으로 변환하려고합니다. 2 폴더의 두 파일의 데이터를 결합하고 싶습니다.ord 함수가 루프로 실행됩니다.

나는이 파일을 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 

이 기대에 감사 여기 내 코드입니다.

+0

"그들은 모두 ('\ XAE \ XAE \ XB4 \ x9e \ x8f \에있는 x9f \ xba \ xc1 \ xd5 \ xbd \ xcd \ xa1 \ xb7 \ ') 형식으로 표시됩니다. " 나는 이것이 당신이 무엇을 의미하는지 전혀 모른다. 메모장에서 파일을 열면 따옴표와 백 슬래시가 표시됩니까? 모두 하나의 긴 문자열일까요? –

+0

16 진수 파일이므로 메모장에서 읽을 수 없습니다. – shreya

답변

0
[ord(i) for i in fi] 

파일을 반복하면 파일의 행을 반복합니다. 한 번에 한 캐릭터를 반복하고 싶은 것처럼 들립니다. 이를 위해 각 파일을 단일 청크로 명시 적으로 시도한 다음 결과 문자열을 반복 할 수 있습니다.

당신이 메모리에 전체 파일 내용을 원하지 않는 경우처럼, 사용자 정의 반복자를 만드는 시도 할 수 :

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

죄송합니다. 프로그래밍에 초보자입니다. 어떻게해야합니까? 각 196 파일을 포함하는 2 디렉터리가 16 진수 형식의 각 파일 121 값을 16 진수 ord(). 사용하여 16 진수 변환하고 새로운 출력 파일에 쓸 노력하고있어. 각 출력 파일은 123,456 56,23 89,56과 같은 2 개의 입력 파일과 새로운 디렉토리의 196 개의 파일을 가져야합니다. 그러나 새 디렉토리의 각 파일에는 196 개의 값이 있습니다. 나에게 무엇을 할 지 제안 해 주시겠습니까? 감사합니다 – shreya

관련 문제