2011-02-11 2 views
0

나는 Excel 파일을 읽고 조작하는 함수를 작성했다. 분명히 .py 파일은 Excel 파일과 같은 디렉토리에 있어야합니다. 같은 위치에 스크립트를 남길 수 있도록 파일의 경로를 입력하는 방법이 있습니까?현재 디렉토리가 아닌 경로를 통해 액세스하는 방법은 무엇입니까?

+0

.py 파일은 엑셀 파일과 다른 디렉토리에있을 수 있습니다 - 파일을 여는 데 사용하는 코드는 무엇입니까? – Mark

+0

xlrd를 사용 중입니다. 그래서 xlrd.open_workbook ('filename') – Kosig

+3

'filename'을 '/ path/to/filename'으로 바꾸십시오. 또는 Windows의 경우 'C : \\ Path \\ to \\ filename'을 입력하십시오. 교차 플랫폼 일 필요가있는 경우 os.join을 사용하여 올바른 구분 기호를 선택할 수 있습니다. –

답변

2

분명히 .py 파일은 Excel 파일과 동일한 디렉토리 에 있어야합니다.

나는 "분명히"이해가 안

그래서 에 같은 장소를 스크립트를 남길 수 있습니다 파일의 경로를 입력 할 수있는 방법이 있나요?

예, 단지에 입력

xlrd documentation에서 :.

open_workbook(filename=None, etc etc etc) 

    Open a spreadsheet file for data extraction. 

    filename 
     The path to the spreadsheet file to be opened. 

스크립트의 코드 조각 (당신이 당신의 스크립트에 경로를 하드 코딩하지 않는 가정) :

import sys 
import xlrd 
book = xlrd.open_workbook(sys.argv[1]) 

Windows의 "명령 프롬프트"창에서 실행 :

python c:\myscripts\demo_script.py d:\datafiles\foo.xls 

같은 원칙은

또한,이 조언은 당신이 파일 이름이나 파일 경로를 먹이 어떤 소프트웨어의 매우 독립적 등 리눅스, OS의 X에 적용됩니다.

preferability의 오름차순으로 :

  • 사용 백 슬래시 : Windows에서 파이썬 스크립트에 하드 코딩 파일 경로에 대한

    "c:\testdata\new.xls"합니다 ... \t는 TAB으로 해석됩니다 캐릭터. \n은 개행 문자로 해석됩니다. 실패.

  • 백 슬래시를 탈출하십시오 : "c:\\testdata\\new.xls" ... Yuk. r"c:\testdata\new.xls"

  • 슬래시 :

  • 원시 문자열을 사용 "c:/testdata/new.xls" ... 예, 열 공급 때, 작동().

  • 위의 스크립트 예제를 참조하십시오.

+0

나는 맹세한다, 나는 노력했고,이 정확한 물건을 시험해보고있다. .. 그것은 심지어 나를위한 길을 자동 완성한다. 문제가 무엇인지 잘 모르겠습니다. – Kosig

+0

@Kosig : 스크립트에있는 것을 정확하게 보여줍니다. –

+0

백 슬래시 대신 c :/path/filename을 입력했을 때 충분히 이상하게 작동했습니다. – Kosig

4
import os 
os.chdir('/my/new/path') 

당신은 os.chdir을 사용하여 현재 작업 디렉토리를 변경할 수 있습니다.

또 다른 방법은 절대 경로로 Excel 파일을 참조하는 것입니다.

+1

예제는 매우 불행합니다. Excel 파일은 이진 파일이므로 이진 모드로 열어야합니다. 어쨌든 open (....) read()는 Excel 파일의 파서가 어떤 단계에서 수행 할 수있는 작업 일 수 있지만 OP가 수행하기를 원하는 것이거나 권장하지 않는 것입니다. 말할 필요가있는 것은 절대 (또는 상대 경로) 경로를 사용하는 것입니다. –

+0

감사합니다. 당신 말이 맞습니다. 편집 됨. –

관련 문제