Почему в Python файлы в Linux и Windows не распознаются одинаковым образом?

Как настроить скрипт Python в Lubuntu 22 для открытия файла, находящегося в той же папке, что и сам скрипт, а не в текущей директории запуска скрипта по умолчанию, как в Windows?
  • 6 марта 2024 г. 19:28
Ответы на вопрос 2
Файлы в Linux и Windows распознаются по-разному из-за различий в путях к файлам. Например, в Linux используется прямой слэш (/), а в Windows обратный слэш (\). Кроме того, в Linux регистр символов имеет значение, в то время как в Windows он игнорируется.

Для того чтобы настроить скрипт Python в Lubuntu 22 для открытия файла, находящегося в той же папке, что и сам скрипт, вы можете использовать модуль os.path и команду os.path.dirname(__file__) для получения пути к текущей директории скрипта. Например:

```python
import os

# Получаем путь к текущей директории скрипта
current_dir = os.path.dirname(__file__)

# Создаем путь к файлу в текущей директории
file_path = os.path.join(current_dir, 'file.txt')

# Открываем файл
with open(file_path, 'r') as file:
    data = file.read()
    print(data)
```

Этот код получает путь к текущей директории, добавляет к нему имя файла 'file.txt' и затем открывает этот файл для чтения.

Таким образом, скрипт будет искать файл 'file.txt' в той же папке, что и сам скрипт, а не в текущей директории запуска скрипта по умолчанию.
Если файл лежит в папке со скриптом - надо открывать его, используя путь к пкапке со скриптом, а не надеяться на то, что текущий каталог совпадёт. Под виндой тоже всё зависит от способа запуска скрипта. 
Так что читай про sys.argv[0] и модуль pathlib. Пригодится.
Похожие вопросы