- Составление пути к файлу в Unix и Windows в Python.
- Python 3 Quick Tip: The easy way to deal with file paths on Windows, Mac and Linux
- The Wrong Solution: Building File Paths by Hand
- The Old Solution: Python’s os.path module
- The Better Solution: Python 3’s pathlib!
- Windows path in Python
- 5 Answers 5
- Как добавить Python в переменную Windows PATH
- 2 min
- Зачем Добавлять Python В Windows PATH?
- Как Вручную Добавить Python В ПУТЬ Windows
- Найдите Путь Установки Python На Вашем ПК
- Далее: Добавить Python В PATH В Пользовательских Переменных
- Добавление Python В PATH С Помощью Параметра Системных Переменных
- Добавить Python В Windows PATH Автоматически
- Подтвердите, Что Python Добавлен В Windows PATH
Составление пути к файлу в Unix и Windows в Python.
При доступе к файлу в операционной системе требуется правильно указать путь к файлу. Путь к файлу — это строка, которая представляет местоположение файла.
Предупреждение. Сразу оговоримся, чтобы не получить геморрой при составлении путей к файлам с системе Windows используйте встроенный модуль pathlib .
Он разбит на три основные части:
- Путь к файлу /path/to/file/ : расположение директории в файловой системе, где папки разделены прямой косой чертой ‘/’ в Unix подобных системах или обратной косой чертой ‘\’ в Windows.
- Имя файла text : фактическое имя файла.
- Расширение .txt : используется для указания типа файла.
Для чтения или записи в файл нам необходимо его открыть, а для этого нужно передать путь к нужному файлу в качестве строки функции open() . Для Unix подобных систем это делается просто:
В системе Windows путь включает в себя обратную косую черту ‘\’ . Этот символ в строках на Python используется для экранирования escape-последовательностей, таких как новая строка ‘\n’ .
Что бы избежать Windows системах такого безобразия, нам нужно вручную экранировать обратную косую черту ‘\\’ или передавать в функции open() сырую (необработанную) строку, указав перед первой кавычкой строковой литерал ‘r’ :
А вот как просто создавать и использовать пути при помощи встроенного модуля pathlib . Так как модуль встроенный, то устанавливать ничего не надо.
Строковое представление пути можно посмотреть функцией str() — это сам необработанный путь к файловой системе в собственном виде, например с обратным слешем в Windows, который можно передать любой функции, принимающей путь к файлу в виде строки:
Переводить путь в текстовое представление не обязательно, т.к. объект пути модуля pathlib принимают все функции.
Python 3 Quick Tip: The easy way to deal with file paths on Windows, Mac and Linux
Jan 31, 2018 · 4 min read
One of programming’s little annoyances is that Microsoft Windows uses a backslash character between folder names while almost every other computer uses a forward slash:
This is an accident of early 1980’s computer history. The first version of MS-DOS used the forward slash character for specifying command-line options. When Microsoft added support for folders in MS-DOS 2.0, the forward slash character was already taken so they used a backslash instead. Thirty-five years later, we are still stuck with this incompatibility.
If you want your Pyt h on code to work on both Windows and Mac/Linux, you’ll need to deal with these kinds of platform-specific issues. Luckily, Python 3 has a new module called pathlib that makes working with files nearly painless.
Let’s take a quick look at the different ways of handling filename paths and see how pathlib can make your life better!
The Wrong Solution: Building File Paths by Hand
Let’s say you have a data folder that contains a file that you want to open in your Python program:
This is the wrong way to code it in Python:
Notice that I’ve hardcoded the path using Unix-style forward slashes since I’m on a Mac. This will make Windows users angry.
Technically this code will still work on Windows because Python has a hack where it will recognize either kind of slash when you call open() on Windows. But even still, you shouldn’t depend on that. Not all Python libraries will work if you use wrong kind of slash on the wrong operating system — especially if they interface with external programs or libraries.
And Python’s support for mixing slash types is a Windows-only hack that doesn’t work in reverse. Using backslashes in code will totally fail on a Mac:
For all these reasons and more, writing code with hardcoded path strings is the kind of thing that will make other programmers look at you with great suspicion. In general, you should try to avoid it.
The Old Solution: Python’s os.path module
Python’s os.path module has lots of tools for working around these kinds of operating system-specific file system issues.
You can use os.path.join() to build a path string using the right kind of slash for the current operating system:
This code will work perfectly on both Windows or Mac. The problem is that it’s a pain to use. Writing out os.path.join() and passing in each part of the path as a separate string is wordy and unintuitive.
Since most of the functions in the os.path module are similarly annoying to use, developers often “forget” to use them even when they know better. This leads to a lot of cross-platform bugs and angry users.
The Better Solution: Python 3’s pathlib!
Python 3.4 introduced a new standard library for dealing with files and paths called pathlib — and it’s great!
To use it, you just pass a path or filename into a new Path() object using forward slashes and it handles the rest:
Notice two things here:
- You should use forward slashes with pathlib functions. The Path() object will convert forward slashes into the correct kind of slash for the current operating system. Nice!
- If you want to add on to the path, you can use the / operator directly in your code. Say goodbye to typing out os.path.join(a, b) over and over.
And if that’s all pathlib did, it would be a nice addition to Python — but it does a lot more!
For example, we can read the contents of a text file without having to mess with opening and closing the file:
In fact, pathlib makes most standard file operations quick and easy:
You can even use pathlib to explicitly convert a Unix path into a Windows-formatted path:
And if you REALLY want to use backslashes in your code safely, you can declare your path as Windows-formatted and pathlib can convert it to work on the current operating system:
If you want to get fancy, you can even use pathlib to do things like resolve relative file paths, parse network share paths and generate file:// urls. Here’s an example that will open a local file in your web browser with just two lines a code:
This was just a tiny peak at pathlib. It’s a great replacement for lots of different file-related functionality that used to be scattered around different Python modules. Check it out!
Thanks for reading! If you are interested in Machine Learning (or just want to understand what it is), check out my Machine Learning is Fun! series or sign up for my newsletter:
You can also follow me on Twitter at @ageitgey or find me on LinkedIn.
Windows path in Python
What is the best way to represent a Windows directory, for example «C:\meshes\as» ? I have been trying to modify a script but it never works because I can’t seem to get the directory right, I assume because of the ‘\’ acting as escape character?
5 Answers 5
you can use always:
this works both in linux and windows. Other posibility is
if you have problems with some names you can also try raw string literals:
however best practice is to use the os.path module functions that always select the correct configuration for your OS:
From python 3.4 you can also use the pathlib module. This is equivelent to the above:
Use the os.path module.
Or use raw strings
I would also recommend no spaces in the path or file names. And you could use double backslashes in your strings.
Yes, \ in Python string literals denotes the start of an escape sequence. In your path you have a valid two-character escape sequence \a , which is collapsed into one character that is ASCII Bell:
Other common escape sequences include \t (tab), \n (line feed), \r (carriage return):
As you can see, in all these examples the backslash and the next character in the literal were grouped together to form a single character in the final string. The full list of Python’s escape sequences is here.
There are a variety of ways to deal with that:
Python on Windows should handle forward slashes, too.
Как добавить Python в переменную Windows PATH
2 min
Запуск Python с терминала зачастую неизбежен. Однако, если вы впервые установили Python в Windows 10, запуск его через Терминал Windows возможен только в том случае, если он добавлен в переменную среды Windows PATH.
Это может показаться сложным, но бояться нечего. Чтобы помочь вам преодолеть повороты, связанные с добавлением Python в PATH Windows после его установки, давайте рассмотрим варианты и несколько необходимых шагов.
Зачем Добавлять Python В Windows PATH?
Если вам не удалось добавить Python в PATH в вашей ОС Windows, вы не сможете запустить интерпретатор Python, запустить виртуальную среду программирования или выполнить такие команды, как pip install, из терминала.
Мы исследуем лучшие способы создания виртуальных сред Python и управления ими.
Это потому, что, когда вы запускаете любую программу, отличную от программы по умолчанию, из командной строки, машина ищет исполняемый файл в текущей папке или в ПУТИ Windows.
Если его нет в переменной PATH, терминал возвращает ошибку «команда не найдена». Добавление в PATH – это мощный инструмент, даже если вы выполняете команду из созданного или пакетного файла по умолчанию , добавление родительского исполняемого файла в переменную PATH также делает его доступным для вызова из терминала.
Как Вручную Добавить Python В ПУТЬ Windows
Во-первых, если вы не установили Python на свой компьютер, перейдите на веб- сайт python.org, чтобы загрузить и установить предпочитаемую версию.
После успешной установки Python на ваш компьютер проверьте, не добавлен ли он в PATH Windows. Откройте свой терминал и введите python , затем нажмите клавишу Enter . Команда может вернуть ошибку, в которой говорится, что «python не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл», что означает, что Python еще не добавлен в переменную PATH вашего компьютера.
Чтобы запускать программы Python из командной строки, выполните шаги, выделенные ниже.
Найдите Путь Установки Python На Вашем ПК
Чтобы добавить Python в ваш Windows PATH, вам нужно получить путь его установки. Для этого откройте панель поиска Windows и введите python.exe (не нажимайте клавишу Enter ). Затем щелкните правой кнопкой мыши Python.exe, который появляется в появившемся меню, и выберите опцию Открыть расположение файла .
В открывшихся окнах проводника щелкните длинную панель каталогов слева от строки поиска. Выделите и скопируйте весь текст пути в буфер обмена с помощью Ctrl + c . Затем перейдите к следующим шагам ниже.
Далее: Добавить Python В PATH В Пользовательских Переменных
Чтобы добавить Python в PATH в пользовательских переменных , щелкните правой кнопкой мыши « Этот компьютер» и выберите « Свойства» . Оказавшись в меню свойств, нажмите на опцию Advanced system settings . В следующем окне выберите вкладку Advanced и выберите Environment Variables .
Environment Variables меню состоит из двух отдельных частей: верхняя часть называется Пользовательские переменные , а нижняя часть имени системных переменных . Однако в этом случае мы сосредоточимся на пользовательских переменных .
В меню пользовательских переменных найдите переменную с именем Path . Затем вставьте путь, который вы скопировали ранее, в параметр «Значение переменной», используя Ctrl + v, и нажмите « ОК» .
Однако, если вы не можете найти эту переменную, вам может потребоваться ее создать. Для этого нажмите New . Затем в форме имени переменной введите путь и вставьте свой путь Python в поле значения переменной .
Вернитесь в папку пути установки Python и дважды щелкните Scripts, чтобы открыть этот каталог. Затем скопируйте его путь из панели пути в верхней части окон (помимо панели поиска), как вы это делали ранее для пути установки Python.
Скопировав путь к скриптам, вернитесь к переменным среды . Затем выберите переменную Path и нажмите Edit . Введите точку с запятой после пути к исполняемому файлу Python и вставьте после него путь скриптов, который вы только что скопировали. Затем нажмите ОК .
Добавление Python В PATH С Помощью Параметра Системных Переменных
Вы также можете добавить Python в системную переменную PATH. Хотя это всего лишь альтернатива, и в ней нет необходимости, если вы уже добавили ее в переменные Users .
Чтобы использовать параметр « Системные переменные» , выполните шаги, выделенные выше, для копирования пути Python и его сценария. Затем вернитесь в переменные среды . Затем в сегменте системных переменных найдите переменную с именем Path . Щелкните эту переменную и щелкните Изменить .
В следующем появившемся окне нажмите New и вставьте путь, который вы скопировали ранее, в открывшееся пространство. Повторите этот процесс и для пути скриптов . Затем нажмите ОК и закройте окно переменных среды .
Добавить Python В Windows PATH Автоматически
Вы также можете автоматически добавить Python в PATH Windows во время установки. Хотя этот метод работает не во всех случаях, вы все равно можете попробовать.
Для этого щелкните свой установочный файл и установите флажок « Добавить Python 3.7 в PATH» . Номер версии будет меняться при установке разных версий Python.
Установка этого флажка автоматически добавляет Python в ваш путь к Windows. Это означает, что вы можете запускать команды Python через командную строку сразу после установки.
Подтвердите, Что Python Добавлен В Windows PATH
Чтобы узнать, добавлен ли Python в PATH Windows, откройте терминал и введите python –version , затем нажмите клавишу Enter . Если команда возвращает текущую установленную версию Python, это означает, что вы успешно добавили ее в Windows PATH.
Однако, чтобы проверить, добавили ли вы каталог Scripts в Windows PATH, попробуйте запустить пакет установки pip на терминале, заменив «package» на предпочитаемую вами библиотеку. Если вы установили Python 2.7.9 и выше, команда устанавливает названный пакет, указывая, что вы также успешно добавили скрипты Python в путь.
Помимо добавления Python в PATH Windows, вы можете добавить текстовые редакторы, интегрированные среды разработки (IDE), Git, Node, Anaconda и многие другие программы.
Например, управлять проектом с помощью Sublime Text легко, когда вы открываете терминал в каталоге папки вашего проекта и запускаете subl. команда. Это откроет редактор в вашей текущей папке и отобразит его на боковой панели, еще один экономящий время ярлык для продуктивной работы с Sublime Text .