2013-08-14 1 views
0

내 응용 프로그램에서 유니 코드 문자로 파일을 실행하려고하는데,이 경우 먼저 코드를 디코딩해야합니다. 이를 위해 ConfigObj.py를 사용하고 있습니다.TypeError : 유니 코드로 강제 변환 : 문자열 또는 버퍼가 필요합니다. 튜플을 찾았습니다.

def generate(self, filetypes): 
     self.data = [] 
     inp = os.listdir(self.path) 
     inp.sort() 
     for line in inp: 
      file = File(os.path.join(self.path, line), filetypes) 
      if file.type != None: 
       self.data.append(file) 

이 사람이 나를 도울 수 :

다음
Traceback (most recent call last): 
   File "GCW_Player.py", line 757, in <module> 
     epMEDIA() 
   File "GCW_Player.py", line 89, in __ init__ 
     self.keyhandler (event.key) 
   File "GCW_Player.py", line 133, in keyhandler 
     if key == K_RIGHT: self.k_goto() 
   File "GCW_Player.py", line 211, in k_goto 
     self.go_to() 
   File "GCW_Player.py", line 649, in go_to 
     self.list.generate (self.sec_ftypes) 
   File "/data/epm_core.py", line 114, in generate 
     inp = os.listdir (self.path) 
TypeError: coercing to Unicode: need string or buffer, tuple found 

는 응용 프로그램에서 해당 파트 파일을 보자 : 나는 응용 프로그램을 실행할 때, 다음과 같은 오류가? 나는이 경우 무엇을해야할지 모른다. 나는이 상황을 결코 경험하지 못했다. 고맙습니다. self.path가 여러 경로를 포함 귀하의

+0

self.path가 실제로 문자열인지 확인할 수 있습니까? – Ishaan

+0

'self.path'는 튜플 일 가능성이 큽니다. – user2357112

+0

Python 파일의 이름을 공백으로 지정하지 마십시오. 그들은 사용하기에 끔찍한 고통이 될 것입니다. 그것들을 가져올 수 없다. (적어도 광대하고 추악한 해결 방법이 없다면) 커맨드 라인에서 공백을 인용하거나 백 슬래시를 이스케이프 처리해야한다. – user2357112

답변

2

은 어쩌면 당신이 필요합니다 : 나는 간단한 수정으로이 문제를 해결했습니다

def generate(self, filetypes): 
    self.data = [] 

    for folder in self.path: 
     inp = os.listdir(folder) 
     inp.sort() 
     for line in inp: 
      file = File(os.path.join(folder, line), filetypes) 
      if file.type != None: 
       self.data.append(file) 
+1

Antti Haapala, 감사합니다. 지금은이 오류를 얻을 : '파일 "데이터/epm_core.py", 라인 (116), generate'에서 'INP = os.listdir (폴더)' '형식 오류 : 유니 코드로 강요 : 필요 문자열 또는 버퍼, ConfigObj을 찾았다' – bbruno5

0

좋아, 단지 시간이 오래. 유니 코드 caracter를 가질 수있는 모든 부분에 문자열을 사용합니다. encode.utf8(). decode.utf8()을 사용하는 것이 더 어렵 기 때문에 올바른 순간에 문자열을 사용하십시오.

관련 문제