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

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