О чем это?
Возможно, вы увидели траги обработки кодов Python, как это.
folder_path = 'C:\\users\\dr\\Documents' # in unix based machines like below # folder_path = "/home" + "/" + "dr" file_name = 'test.txt' file_path = folder_path + '\\' + file_name with open(file_path) as file_data: do_something_with(file_data)
Конечно, это будет работать. Но, если мы хотим, чтобы наша программа работать в других ОС, таких как Mac или Linux, то код не удастся, потому что Windows обрабатывает путь по-разному по сравнению с операционными системами на основе UNIX.
Итак, другой способ использовать Присоединяйтесь к
Метод от OS.PATH
Модуль, как ниже.
import os file_path = os.path.join("C:\\", "users", "dr", "Documents", "test.txt") print(file_path) # C:\users\dr\Documents
Но лучший способ обращаться с пути будет
Использование пути от pathlib
Сначала давайте импортировать Путь
от путь
from pathlib import Path
Затем мы начнем путь, как следует следующим образом, обратите внимание, мы используем /
Даже в ОС Windows вместо \\
Отказ
folder_path = Path('C:/Users/dr/Documents')
Затем добавить путь, мы просто должны использовать /
нравиться так
file_path = folder_path / file_name
Даже если у нас есть длинные пути, было бы легче написать и прочитать.
long_file_path = root / folder_a / folder_b / filename
Это будет работать должным образом в Windows, Mac & Linux, нам не нужно беспокоиться о \\
или /
Отказ
Помимо этого преимущества, Путь
Также предоставляет много функций, таких как IS_FILE
, IS_DIR
С Мкдир
, который мы обычно используем из OS.PATH
модуль.
# few methods import Path from pathlib path = Path("/home/dr") path.exists() # returns True if folder exists else False path.home() # "/home/dr" path.is_dir() # True path.is_file() # False path.mkdir() # create folder # and a lot more
Оригинал: “https://dev.to/dillir07/better-way-to-handle-paths-in-python-3fmj”