2009-11-19 5 views
0

os.listdir()을 사용하여 디렉토리에서 모든 파일을 가져 와서 txt 파일로 덤프합니다. txt 파일을 사용하여 하이퍼 링크를 생성하는 액세스로 가져옵니다. 문제는 올바른 경로를 얻는 것입니다. 그래서 스크립트가 실행될 때 당신이 속한 디렉토리를 사용합니다. 여기에 예제가 있습니다. 지금은 절반이 작동하지만 links.txt를 만들지 만 텍스트 파일에는 아무것도 없습니다.파이썬 os.getcwd 경로

myDirectory = os.listdir("links") 
f.open("links.txt", "w") 
f.writelines([os.getcwd %s % (f) for f in myDirectory]) 
+0

이전에 해보았던 방법이지만 하드 링크이기 때문에 스크립트가 실행되는 위치에 따라 더 동적 인 것이 필요했습니다. f.writelines ([ 'file : //// links/% s \ n'myDirectory에서 f의 % (f)]) – Dunwitch

답변

1

당신의이 행을 비록 당신이 아마 여기에 실제로 원하는 것은

myDirectory이 현재 디렉토리의 파일이 아니라 하위 디렉토리 "링크"에 나열 될 때 현재 디렉토리에 대해 신경을 쓰는 이유는 무엇입니까?

당신의 마음은 항상 어렵고 일반적으로 보상을받지 못하게 훈련이다 읽으려고하지만, 현재 디렉토리를 사용하는 뜻 가정, 당신은

f.writelines(os.path.join(os.getcwd(), f) for f in myDirectory) 
+0

그랬습니다. 저 한테 제다이를 만들어서 미안해. 나는 아직도 프로그래밍을 배우고있다. – Dunwitch

0

전화 번호는 os.getcwd()입니다. 전화 번호는 괄호로 묶어야합니다. - 예를 들어

f.writelines([os.getcwd %s % (f) for f in myDirectory]) 

가 잘못 파이썬 구문이며 그것을 위해 당신이 생각했던 것을 생각하는 것은 매우 어렵다 : os.path.join()

0

os.getcwd 당신이 호출 할 필요가있는 기능입니다 할 수 있습니다.

f.writelines([os.path.join(os.getcwd(),f) for f in myDirectory]) 

[편집 : 운영 체제 나는 당신이 뭔가를 원하는 것 같은데요 ...하지만 그들은 단지 내부 문자열을 작동 - .. 또한 당신이 문자열 이스케이프 %로 무슨 일을하는지 모르겠어요. 알렉스 Martelli의 더 나은 대답에서 경로. 조인]

관련 문제