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

В работе с файлами и директориями важно понимать, как правильно указывать пути к файлам. Это знание поможет вам эффективно управлять файлами и папками в различных проектах. В этой лекции мы подробно рассмотрим, что такое пути, директории и как писать пути к файлам в различных ситуациях.
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. |
Эта таблица включает основные концепции работы с файловыми путями и примеры кода для доступа к файлам и создания новых директорий.
Понимание и правильное написание путей к файлам — ключ к эффективной работе с файловой системой. Знание того, как изменяются пути в зависимости от текущего местоположения в древовидной структуре, поможет вам избежать ошибок и упростит управление файлами и папками в вашем проекте.
Эта лекция поможет вам решать задачи, так-как делать целое пособие с картинками и тд по тому, как писать пути файлов это полный бред, используйте эту лекцию или информацию в интернете по тому как писать пути, если у вас возникнут трудности.