Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
pythono
7 лет назад

Python // Работаем с файловой системой

Модуль os в Python предназначен для взаимодействия программы с операционной системой, в частности для управления файлами. Иногда нужно автоматизировать какие-то действия с файлами, например создать автоматический установщик, или программу делающую бэкап документов на второй раздел диска. Вариантов применения работы с файлами - масса. Рассмотрим основные команды модуля:

Чтобы начать работу сперва нужно импортировать модуль os:

import os

Получаем путь к текущей папке в которой происходит работа программы. Эта папка не обязательно должна совпадать с той папкой из которой запущено приложение, можно и поменять её на нужную нам.

print (os.getcwd()) # возвращает путь к текущей рабочей папке
os.chdir('D:/') # устанавливает путь к текущей рабочей папке

Попробуем получить список файлов в текущей директории с расширением '.py'. Для этого используем модули os и fnmatch.


import os
import fnmatch
for file in os.listdir('.'):
    if fnmatch.fnmatch(file, '*.py'):
        print (file)




Удалим какой-либо файл, который существует на диске:


import os
(os.remove('D:/test.txt'))




Переименуем файл:


import os
os.rename('sample.txt','sample1.txt')




Давайте создадим папку по указанному пути и сразу же удалим её. Здесь мы дополнительно подключили модуль shutil.

import os
import shutil
os.makedirs('D:/test/test2')
# Создаёт все папки по указанному пути
shutil.rmtree('D:/test') # Удаляет папку



Получим размер какого-нибудь файла, а также дату его модификации.


import os.path
from datetime import datetime
# для преобразования даты в приемлемый формат
path = 'C:/Windows/notepad.exe'
size = os.path.getsize(path)
# размер файла в байтах
ksize = size//1024 # размер в килобайтах
atime = os.path.getatime(path) # дата последнего доступа в секундах с начала эпохи
mtime = os.path.getmtime(path) # дата последней модификации в секундах с начала эпохи
print ('Размер: ', ksize, ' KB')
print ('Дата последнего использования: ', datetime.fromtimestamp(atime))
print ('Дата последнего редактирования: ', datetime.fromtimestamp(mtime))




Откроем какой-либо файл с помощью программы которой этот файл открывается в системе:


import os
os.startfile(r'C:/Program Files/Mozilla Firefox/firefox.exe')




Напечатаем список всех файлов содержащихся внутри папок по определенному пути (учитывая вложенные подкаталоги)


import os
for root, dirs, files in os.walk('C:/Users/Public/'):
    for name in files:
        fullname = os.path.join(root, name)
        print(fullname + '\n')




Ниже приведен список еще некоторых полезных команд:

os.path.basename('D:/test/1/file.txt') # Возвращает имя объекта (файл / папка) указанного пути
os.path.dirname('D:/test/folder/fld/file.txt') # Возвращает родительский путь к объекту пути (первая часть os.path.split)
os.path.splitext('D:/test/folder/fld/file.txt') # Разделяет путь на путь и расширение файла
os.path.exists('D/1/temp.txt') # существует ли путь?
os.path.isfile('D/test1.txt') # Является ли объект пути обычным файлом? (существующим)
os.path.isdir('D:/test') # Является ли объект пути обычной папкой? (существующей)

131
1.214 GOLOS
На Golos с August 2017
Комментарии (23)
Сортировать по:
Сначала старые