Понимание и написание путей к файлам в файловой системе

В работе с файлами и директориями важно понимать, как правильно указывать пути к файлам. Это знание поможет вам эффективно управлять файлами и папками в различных проектах. В этой лекции мы подробно рассмотрим, что такое пути, директории и как писать пути к файлам в различных ситуациях.

1. Основные понятия


1.1. Директория (Папка)

Директория (или папка) — это место, где хранятся файлы и другие директории. Она может содержать файлы или поддиректории, формируя структуру данных в файловой системе.


1.2. Путь к файлу

Путь к файлу — это строка, которая указывает на местоположение файла в файловой системе. Пути могут быть абсолютными или относительными.

  • Абсолютный путь начинается с корневой директории и указывает полное местоположение файла. Он уникален для всей файловой системы.
  • Относительный путь указывает местоположение файла относительно текущей рабочей директории.

Примеры:

  • Абсолютный путь в Windows: C:\Users\Username\Documents\example.txt
  • Абсолютный путь в Unix-подобных системах: /home/username/Documents/example.txt
  • Относительный путь: Documents/example.txt (относительно текущей директории)

2. Древовидная структура файловой системы

Файловая система организована в виде древовидной структуры, где корневая директория (или корень) является начальной точкой, а все другие директории и файлы расположены в иерархии.

Пример файловой структуры:

project/
│
├── src/
│   ├── main.py
│   └── utils.py
│
├── data/
│   ├── input/
│   │   └── data.csv
│   └── output/
│       └── results.txt
│
└── README.md

3. Путь к файлу в зависимости от местоположения

В зависимости от того, где вы находитесь в файловой системе, пути к файлам могут изменяться. Рассмотрим примеры написания путей из разных директорий.


3.1. Корневая директория проекта

Если вы находитесь в корневой директории проекта (project), пути к файлам будут следующие:

  • Для src/main.py: src/main.py
  • Для data/input/data.csv: data/input/data.csv
  • Для README.md: README.md

Пример кода:

# Работа с файлом data.csv из корневой директории
with open('data/input/data.csv', 'r') as file:
    content = file.read()
    print(content)


3.2. Директория src

Если вы находитесь в директории src, пути к файлам будут следующими:

  • Для main.py: main.py
  • Для utils.py: utils.py
  • Для data/input/data.csv: ../data/input/data.csv
  • Для README.md: ../README.md

Пример кода:

# Работа с файлом data.csv из директории src
with open('../data/input/data.csv', 'r') as file:
    content = file.read()
    print(content)

3.3. Директория data/input

Если вы находитесь в директории data/input, пути к файлам будут следующими:

  • Для data.csv: data.csv
  • Для results.txt: ../output/results.txt
  • Для main.py: ../../src/main.py
  • Для README.md: ../../README.md

Пример кода:

# Работа с файлом results.txt из директории data/input
with open('../output/results.txt', 'r') as file:
    content = file.read()
    print(content)


3.4. Директория data/output

Если вы находитесь в директории data/output, пути к файлам будут следующими:

  • Для results.txt: results.txt
  • Для data.csv: ../input/data.csv
  • Для main.py: ../../src/main.py
  • Для README.md: ../../README.md

Пример кода:

# Работа с файлом data.csv из директории data/output
with open('../input/data.csv', 'r') as file:
    content = file.read()
    print(content)

4. Добавление новых папок и файлов

Теперь рассмотрим, как добавлять новые папки и файлы в нашу древовидную структуру и как к ним обращаться.


4.1. Добавление новой папки и файла в data

Предположим, что вы хотите добавить новую директорию archive в data и создать в ней файл old_data.csv.

Обновленная структура:

project/
│
├── src/
│   ├── main.py
│   └── utils.py
│
├── data/
│   ├── input/
│   │   └── data.csv
│   ├── output/
│   │   └── results.txt
│   └── archive/
│       └── old_data.csv
│
└── README.md

Пример кода для создания новой директории и файла:

import os

# Создаем новую директорию archive внутри data
os.makedirs('data/archive', exist_ok=True)

# Создаем новый файл old_data.csv в директории archive
with open('data/archive/old_data.csv', 'w') as file:
    file.write('some,old,data\nanother,line')


4.2. Доступ к новому файлу из других директорий

  • Если вы находитесь в корневой директории проекта, путь к новому файлу будет: data/archive/old_data.csv
  • Если вы находитесь в src, путь к новому файлу будет: ../data/archive/old_data.csv
  • Если вы находитесь в data/input, путь к новому файлу будет: ../archive/old_data.csv
  • Если вы находитесь в data/output, путь к новому файлу будет: ../archive/old_data.csv

Пример кода для доступа к новому файлу:

# Работа с файлом old_data.csv из корневой директории
with open('data/archive/old_data.csv', 'r') as file:
    content = file.read()
    print(content)

 

Вот таблица с основными понятиями из лекции:

ПонятиеОписаниеПример
Директория (Папка)Место для хранения файлов и других директорий, формирующих структуру данных в файловой системе.Пример: src/ — папка для исходных файлов, которая может содержать поддиректории и файлы, такие как main.py, utils.py.
Путь к файлуСтрока, указывающая местоположение файла. Абсолютный путь начинается с корневой директории, а относительный — относительно текущей директории.Абсолютный путь: C:\Users\Username\Documents\example.txt (Windows), /home/username/Documents/example.txt (Linux). Относительный путь: Documents/example.txt (относительно текущей директории).
Древовидная структураИерархия директорий и файлов, организованная в виде дерева, начиная с корневой директории (корня).Пример структуры: project/src/main.py, project/data/input/data.csv, project/README.md.
Корневая директорияНачальная точка файловой структуры проекта, содержащая все основные папки и файлы.Пример: В корневой директории project/, путь к файлу будет: src/main.py, data/input/data.csv.
Директория srcПапка для исходных файлов. Пути к файлам могут изменяться в зависимости от местоположения текущей рабочей директории.Из src/ пути будут такими: main.py, ../data/input/data.csv.
Директория data/inputПапка для входных данных.Из data/input пути будут такими: data.csv, ../output/results.txt, ../../src/main.py.
Директория data/outputПапка для выходных данных.Из data/output пути будут такими: results.txt, ../input/data.csv, ../../src/main.py.
Создание новых папокДобавление новых директорий и файлов в проект.Создание папки: os.makedirs('data/archive', exist_ok=True). Создание файла: with open('data/archive/old_data.csv', 'w') as file: file.write('some,old,data').
Доступ к новым файламПути к новым файлам зависят от текущей директории.Пример доступа к файлу из корневой директории: data/archive/old_data.csv, из директории src: ../data/archive/old_data.csv.

Эта таблица включает основные концепции работы с файловыми путями и примеры кода для доступа к файлам и создания новых директорий.
 

Понимание и правильное написание путей к файлам — ключ к эффективной работе с файловой системой. Знание того, как изменяются пути в зависимости от текущего местоположения в древовидной структуре, поможет вам избежать ошибок и упростит управление файлами и папками в вашем проекте.

Эта лекция поможет вам решать задачи, так-как делать целое пособие с картинками и тд по тому, как писать пути файлов это полный бред, используйте эту лекцию или информацию в интернете по тому как писать пути, если у вас возникнут трудности.

Перейти к следующему шагу

Комментарии