2017-05-18 1 views
0

일련의 사용자 입력 파일의 경로를 검색합니다.파이썬 경로 - 모든 파일을 반복적으로 열거 나 텍스트를 추출합니다.

files = QFileDialog.getOpenFileNames(w, 'Open File', '/') 
print(files) 

출력 :

(['~/Desktop/f2.txt', '~/Desktop/f1.txt'], 'All Files (*)’) 

그것은 반환 "파일"객체가 튜플 것 같습니다. 나는 그것을 목록으로 만들고, 주어진 경로를 반복하며, 각각의 내용을 추출해야한다. "사용하지 않기 때문에" '모든 파일 (*)' "을 제거하고 싶습니다.

쉽게 열 수있는 양식의 경로를 넣거나 다른 방법으로 내용을 검색하려면 어떻게해야합니까?

+0

튜플의 첫 번째 색인에 액세스 하시겠습니까? –

답변

0

나는 이것이 당신이 묘사 한 것이라고 생각합니다. "모든 파일"삭제에 대해서는 걱정하지 마십시오. 단순히 그것을 사용하지 마십시오.

files = QFileDialog.getOpenFileNames(w, 'Open File', '/') 
print(files) 
file_list = file[0] # retrieve the list of files from the tuple. 

# Iterate through the list; 
# open each file, in order. 
for input_file in file_list: 
    with open(input_file, 'r') as infile: 
     # Read the entire file. 
     contents = infile.read() 
+0

이 중 하나를 시도했지만 오류가 있습니다 : Traceback (최근 호출 마지막) : 파일 "~/Desktop/Milestone4/mainInterface.py", 줄 168, 응용 프로그램 내용 = infile.read() 파일 " /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/codecs.py ", 라인 321, 디코드 중 (결과, 소비) = self._buffer_decode (data, self.errors, final) UnicodeDecodeError : 'utf-8'코덱이 0x35 위치의 바이트를 디코딩 할 수 없습니다. 0 : 잘못된 시작 바이트 – Muneera

+0

문자 설정을 올바르게 설정해야합니다. 입력이 다른 문자 세트 인 동안 * UTF-8 * (많은 환경에서는 기본값)을 사용하고 있습니다. [HTML/XML 인코딩] (https://pythonhosted.org/feedparser/character-encoding.html)과'coding' 메타 명령을 사용해보십시오. – Prune