2013-01-02 2 views
3

나는 프로세스 중에 일부 파일을 생성하는 Python 프로그램이 있습니다. 프로그램이 현재 디렉토리를 인식하고 그 디렉토리 안에 폴더를 생성하여 생성 된 파일이 그 디렉토리에 저장되도록합니다.현재 디렉토리 안에 생성 된 새 폴더

current_directory = os.getcwd() 
final_directory = os.path.join(current_directory, r'/new_folder') 
if not os.path.exists(final_directory): 
    os.makedirs(final_directory) 

하지만 내가 원하는 걸 포기하지 않습니다

나는이 시도. 두 번째 라인은 내가 원하는만큼 작동하지 않는 것 같습니다. 아무도 내가 문제 해결을 도울 수 있습니까?

+6

* 그러나 그것은 내가 원했던 것을주지 않습니다 * : 항상 그것이 한 일에 명시 적이어야합니다. –

+0

"<<%s>>"% final_directory "출력의 출력 내용은 무엇입니까? – amadain

답변

5

한 가지주의 할 점은 절대 경로가 인수 중 하나로 제공된 경우 다른 요소는 버려지는 것입니다 (os.path.join 설명서 참조).

In [1]: import os.path 

In [2]: os.path.join('first_part', 'second_part') 
Out[2]: 'first_part/second_part' 

In [3]: os.path.join('first_part', r'/second_part') 
Out[3]: '/second_part' 

그리고 Windows에서 : (리눅스) 예를 들어

>>> import os.path 
>>> os.path.join('first_part', 'second_part') 
'first_part\\second_part' 
>>> os.path.join('first_part', '/second_part') 
'/second_part' 

당신이 당신의 join 인수에 /을 선도 포함하기 때문에

, 그것은 절대 경로로 해석하기 때문에 나머지는 무시되고있다. 따라서 조인을 예상대로 수행하려면 두 번째 인수의 시작 부분에서 /을 제거해야합니다. /을 포함 할 필요가없는 이유는 os.path.join이 암시 적으로 os.sep을 사용하므로 올바른 구분 기호가 사용되었는지 확인하기위한 것입니다. 위 출력의 차이는 os.path.join('first_part', 'second_part'입니다.

8

문제가 r'/new_folder'에 있고 여기에 사용 된 슬래시 (루트 디렉토리 참조)라고 생각하십시오. 작동해야

current_directory = os.getcwd() 
final_directory = os.path.join(current_directory, r'new_folder') 
if not os.path.exists(final_directory): 
    os.makedirs(final_directory) 

:

은 그것을보십시오.

+1

자세한 정보는 @RocketDonkey 더 좋은 설명을보십시오. – hetsch

+2

처음에는 그것을 가지고 당신에게 +1 : – RocketDonkey

+0

감사합니다, 당신은 그것을 받았습니다! :-) – hetsch

관련 문제