source

Linux와 Windows 모두에서 Python에서 "/"(디렉토리 구분자)를 사용하는 방법은 무엇입니까?

factcode 2022. 11. 5. 08:56
반응형

Linux와 Windows 모두에서 Python에서 "/"(디렉토리 구분자)를 사용하는 방법은 무엇입니까?

/를 사용하여 폴더에 특정 파일을 만드는 코드를 python으로 작성했는데, Windows에서 사용할 수 없는 코드를 Windows와 Linux에서 사용할 수 있는 방법이 있습니까?

python에서는 다음 코드를 사용합니다.

pathfile=os.path.dirname(templateFile)
rootTree.write(''+pathfile+'/output/log.txt')

Windows 머신에서 코드를 사용할 때 코드가 작동하지 않습니다.

Linux와 Windows 모두에서 "/"(디렉토리 구분자)를 사용하는 방법

사용하다os.path.join(). 예:os.path.join(pathfile,"output","log.txt").

코드에는 다음과 같습니다.rootTree.write(os.path.join(pathfile,"output","log.txt"))

용도:

import os
print os.sep

현재 OS에서 세퍼레이터가 어떻게 표시되는지 확인합니다.
코드에서는 다음을 사용할 수 있습니다.

import os
path = os.path.join('folder_name', 'file_name')

os.sep를 사용할 수 있습니다.

>>> import os
>>> os.sep
'/'

os.path.normpath(pathname) 변환 시에도 언급해야 합니다./패스 분리기\세퍼레이터를 사용합니다.또한 중복된 상위 레벨 참조를 축소합니다.A/B그리고.A/foo/../B그리고.A/./B만사가 되다A/BWindows 의 경우는, 이 모든 것이A\B.

Python 3.4+를 실행할 수 있다면 다음을 사용할 수 있습니다.

from pathlib import Path

path = Path(dir, subdir, filename)  # returns a path of the system's path flavour

또는 동등하게

path = Path(dir) / subdir / filename

도움이 되는 몇 가지 유용한 링크:

을 실행합니다.import os그런 다음 사용os.sep

os.sep 를 사용할 수 있습니다.

 import os
 pathfile=os.path.dirname(templateFile)
 directory = str(pathfile)+os.sep+'output'+os.sep+'log.txt'
 rootTree.write(directory)

디렉토리와 파일명을 직접 작성하지 말고 파이썬에 포함된 라이브러리를 사용하십시오.

이 경우 관련된 것은 os.path 입니다.특히 디렉토리와 파일 이름 또는 디렉토리에서 새 경로 이름을 생성하고 전체 경로에서 파일 이름을 가져오는 분할을 수행합니다.

예를 들어 다음과 같습니다.

pathfile=os.path.dirname(templateFile)
p = os.path.join(pathfile, 'output')
p = os.path.join( p, 'log.txt')
rootTree.write(p)

다음과 같은 것을 찾고 있는 경우:

상위 디렉토리를 알고 하위 폴더로 이동한 다음 특정 파일로 이동할 수 있습니다.그렇다면 다음과 같은 방법을 사용합니다.

  1. 현재 python 3.9를 사용하고 있습니다.그 버전에는 이러한 작업을 처리하기 위한 os 모듈이 있습니다.부모 디렉토리를 취득하기 위해서:
parent_dir = os.path.pardir
  1. 파일 경로 구분 기호(/ 또는 \)를 하드 코딩하지 않는 것이 좋습니다.대신 의 os 모듈에서 제공하는 운영체제 의존 메커니즘을 사용하십시오.이를 통해 다른 목적/사람을 위해 매우 많이 재사용할 수 있습니다.예를 들어 다음과 같습니다.

path = os.path.pardir + os.sep + 'utils' + os.sep + 'properties.ini'

print(f'The path to my global properties file is :: {path}')

출력::

..\properties\properties.ini

여기에서는, 메뉴얼 전체를 참조할 수첩은 다음과 같습니다. https://docs.python.org/3/library/os.html

용 i i i i를 쓴다.pathlib그래서 저는 :을 좋아합니다.

은 ★★★pathlib입니다.os!

언급URL : https://stackoverflow.com/questions/16010992/how-to-use-directory-separator-in-both-linux-and-windows-in-python

반응형