Более быстрая ОС-это замена для стандартного модуля «ОС» Python. FASES OS предлагает 32 полностью эксплуатированные, оптимизированные и ускоренные функции, которые заменяют те, которые в модуле os.path .
Благодаря более быстрой ОС вы можете обработать 1 400 000 путей всего за минуту , в то время как это займет более часа с модулем ОС.
# Use Faster OS to save hours of processing time!
# The only thing you need to do is write...
import faster_os as os Быстрый. Оптимизированный. Имеет 0 зависимостей. Свет.
Быстрая ОС используется в:
Myquickmac neo - революционная программа для ухода за AI на вашем Mac - www.ambeteco.com/myquickmac-neo
MyQuickmac Lite - инновационная программа для управления файлами AI - www.ambeteco.com/myquickmac-lite
4-Organizer Ultra -мощная программа для автоматического рассеяния вашего ПК с Windows, питаемое на AI-www.ambeteco.com/4-organizer-ltra
4-организатор NANO -автоматически вписывается в компьютер и положит конец бесконечному хаосу файлов-www.ambeteco.com/4-organizer-nano
Стеклоочиститель AI - в рамках разработки, скоро доступен в ближайшее время
Более быстрая ОС-это стабильный, готовый к производству инструмент.
В среднем более быстрая функция ОС на 1504% быстрее , чем исходная функция из модуля ОС.
Наиболее используемые функции ( split , join , splitext ) в среднем на 1215% быстрее :
| Имя | Раз быстрее | Более быстрая ОС: процесс 1 000 000 путей | ОС: Процесс 1 000 000 путей |
|---|---|---|---|
join | 1530% | 14 секунд | 3 минуты 20 секунд |
splitext | 1059% | 8 секунд | 1 минута 33 секунды |
split | 1190% | 18 секунд | 4 минуты 43 секунды |
Полный эталонный результат:
| Функция | Пути сумма | Раз быстрее | Время ОС | Более быстрое время ОС |
|---|---|---|---|---|
| расколоть | 5500 | 1105% | 0,8109 | 0,0733 |
| расщепляемый | 5500 | 445% | 0,3849 | 0,0864 |
| нормейс | 5500 | 313% | 0,1608 | 0,0513 |
| Splitext | 5500 | 938% | 0,5017 | 0,0535 |
| присоединиться | 5000 | 1442% | 1.4388 | 0,0997 |
| Relpath | 5500 | 3653% | 12.1418 | 0,3323 |
| ismount | 5500 | 3620% | 71.5931 | 1.9776 |
| Нормапат | 6500 | 326% | 1.9621 | 0,6026 |
| расширитель | 5500 | 493% | 0,1539 | 0,0312 |
| abspath | 5500 | 180% | 3.5075 | 1.9471 |
| Исаб | 5500 | 760% | 0,6911 | 0,0909 |
| базовое имя | 5500 | 1217% | 0,8403 | 0,0690 |
| Dirname | 5500 | 1236% | 0,8473 | 0,0685 |
| Commonpath | 5000 | 738% | 4.4296 | 0,5998 |
| CommonPrefix | 5000 | 356% | 0,9480 | 0,2661 |
Многофункциональные эталонные результаты:
| Функция | Куски сумма (каждый 50-100 путей) | Раз быстрее | Более быстрое время ОС | Время ОС |
|---|---|---|---|---|
| multi_commonpath | 1000 | 761% | 0,1167 | 0,8886 |
| multi_commonprefix | 1000 | 435% | 0,0491 | 0,2137 |
| multi_abspath | 4500 | 195% | 1.3105 | 2.5564 |
| multi_ismount | 4500 | 6853% | 1.2878 | 88.2588 |
| multi_expanduser | 4500 | 448% | 0,0680 | 0,3050 |
| multi_relpath | 1100 | 3772% | 0,0646 | 2.4374 |
| multi_split | 4500 | 1475% | 0,0442 | 0,6528 |
| multi_splitdrive | 4500 | 628% | 0,0476 | 0,2989 |
| multi_normcase | 4500 | 451% | 0,0298 | 0,1348 |
| multi_normpath | 1300 | 362% | 0,1194 | 0,4324 |
| multi_basename | 4500 | 1599% | 0,0423 | 0,6770 |
| multi_dirname | 4500 | 1644% | 0,0418 | 0,6888 |
| multi_isabs | 4500 | 1023% | 0,0539 | 0,5514 |
| multi_splitext | 4500 | 1282% | 0,0318 | 0,4077 |
| multi_join | 1000 | 1418% | 0,0204 | 0,2902 |
Мы рекомендуем использовать multi-functions когда данный итерабильный имеет более 250 элементов. Для небольших списков использование multi-functions неэффективно.
# Faster OS - a drop-in replacement for the 'OS' module
# Up to 6800% faster!
import faster_os
# All 'OS' functions you need, and even more!
# 32 rewritten functions, optimized for speed and performance.
faster_os . path . join ( '/' , 'some' , 'path' )
> >> '/some/path'
faster_os . path . split ( '/some/test/path' )
> >> ( '/some/test' , 'path' )
faster_os . path . join ( 'C: \ ' , 'Windows \ System32' , 'LogFiles' )
> >> 'C: \ Windows \ System32 \ LogFiles'
faster_os . path . split ( 'C: \ Users \ User \ Desktop' )
> >> ( 'C: \ Users \ User' , 'Desktop' )
# Works both for UNIX and for Windows!
# Everything works exactly the same as in 'OS':
# -- splitext --
faster_os . path . splitext ( 'hello world \ 123.ext' )
> >> ( 'hello world \ 123' , '.ext' )
faster_os . path . splitext ( 'C: \ sample_photo.jpg' )
> >> ( 'C: \ sample_photo' , '.jpg' )
# -- splitdrive --
faster_os . path . splitdrive ( 'C: \ HELLO WORLD \ SOME PATH' )
> >> ( 'C:' , ' \ HELLO WORLD \ SOME PATH' )
faster_os . path . splitdrive ( ' \ \ machine \ mountpoint \ directory \ etc \ ' )
> >> ( ' \ \ machine \ mountpoint' , ' \ directory \ etc \ ' )
# -- normpath --
faster_os . path . normpath ( 'C: \ \ hello \ \ \ world \ \ \ ' )
> >> 'C: \ hello \ world'
faster_os . path . normpath ( 'An invalid \ \ \ path \ \ with many slashes \ \ \ \ \ \ ' )
> >> 'An invalid \ path \ with many slashes'
# -- abspath --
faster_os . path . abspath ( 'Desktop' )
> >> 'D: \ Libraries \ Desktop \ Pys \ Big \ FasterOS \ Desktop'
faster_os . path . abspath ( 'Appdata \ Local' )
> >> 'D: \ Libraries \ Desktop \ Pys \ Big \ FasterOS \ Appdata \ Local'
# -- expanduser --
faster_os . path . expanduser ( '~ \ Downloads \ file.exe' )
> >> 'C: \ Users \ Dsibe \ Downloads \ file.exe'
faster_os . path . expanduser ( '~ \ Appdata' )
> >> 'C: \ Users \ Dsibe \ Appdata'
# -- normcase --
faster_os . path . normcase ( 'C:/HELLO WORLD/SOME/PATH/' )
> >> 'c: \ hello world \ some \ path \ '
faster_os . path . normcase ( 'C:/faster-os/a-unix-path/to-windows/path' )
> >> 'c: \ faster-os \ a-unix-path \ to-windows \ path'
# -- isabs --
faster_os . path . isabs ( 'C: \ Users \ User' )
> >> True
faster_os . path . isabs ( '~ \ user' )
> >> False
faster_os . path . isabs ( '%USERPROFILE% \ hi' )
> >> False
# -- basename --
faster_os . path . basename ( 'C: \ HELLO WORLD \ SOME PATH' )
> >> 'SOME PATH'
faster_os . path . basename ( 'C: \ faster-os' )
> >> 'faster-os'
# -- dirname --
faster_os . path . dirname ( 'C: \ HELLO WORLD \ SOME PATH' )
> >> 'C: \ HELLO WORLD'
faster_os . path . dirname ( 'C: \ faster-os' )
> >> 'C: \ '
# -- commonpath --
faster_os . path . commonpath ([
'C: \ \ Common' , 'C: \ \ Common \ \ ' , 'C: \ \ Common \ \ 123' , 'C: \ \ Common \ \ Common' ,
'C: \ \ Common \ \ abtco \ \ faster_os'
])
> >> 'C: \ Common'
# -- commonprefix--
faster_os . path . commonprefix ([
'C: \ \ ' , 'C: \ \ 1 \ \ 123/123/123 \ \ 123' , 'C: \ \ hello world \ \ some path' ,
'C: \ \ hello world \ \ some path \ \ '
])
> >> 'C: \ '
# And 21 more functions...
# Also, Faster OS also offers special 'multi-functions'.
# Use them to process extra large lists, containing hundreds of thousands of elements!
multi_abspath , multi_basename , multi_commonpath , multi_commonprefix , multi_dirname , multi_expanduser , multi_isabs , multi_ismount , multi_join , multi_normcase , multi_normpath , multi_relpath , multi_split , multi_splitdrive , multi_splitext
# For example:
faster_os . multi_join ([
( 'path/to/join' , 'some path' ),
( 'path/to/join' , 'other path' ),
( 'path/to/join' , 'other path 2' ),
( 'path/to/join' , 'other path 3' ),
...
])
# We recommend using multi-functions over lists with more than 250 elements.
# Even further, Faster OS re-implements removedirs and adds remove_multiple_dirs
faster_os . removedirs ( 'C: \ This \ Path \ Will \ Be \ Deleted' ) pip install faster_os --upgrade
Клон репозиторий: git clone https://github.com/American-Best-Technologies-Company/faster-os.git
Запустить python3 setup.py build_ext
Сделанный! Проверьте установку: import faster_os
Если заданные аргументы действительны, то более быстрое ОС работает абсолютно так же, как и модуль ОС. Это означает, что если вы используете более быструю ОС на любом действительном пути, она будет работать точно так же, как модуль ОС .
Если вы пройдете какой -то неверный путь в качестве аргумента для более быстрых функций ОС, то большая часть исключений, поднятых им, не будет соответствовать тем, которые подняты модулем ОС.
Например, в этом случае исключения, поднятые ОС и более быстрым ОС, одинаковы :
import os
os . path . join ( 'some path' , None )
> >> TypeError : join () argument must be str , bytes , or os . PathLike object , not 'NoneType'
import faster_os
faster_os . path . join ( 'some path' , None )
> >> TypeError : sequence item 0 : expected str instance , NoneType foundНо иногда поднятые исключения могут быть разными :
import os
os . path . normcase ( None )
> >> TypeError : expected str , bytes or os . PathLike object , not NoneType
import faster_os
faster_os . path . normcase ( None )
> >> AttributeError : 'NoneType' object has no attribute 'replace'Основная причина этого - главная цель более быстрой ОС: скорость.
Добавление типов и пути проверки достоверности значительно замедлит быстрее ОС. Прямо сейчас мы не планируем добавлять какие -либо проверки типа или некоторую проверку в более быстрые функции ОС. Из-за этого исключения могут быть не так читаемыми человеком или простым для понимания.
В настоящее время более быстрая ОС поддерживает только str . Поддержка bytes будет добавлена в следующих обновлениях. Возможно, даже os.PathLike объект будет поддерживаться в следующих выпусках.
Питон 3
C Инструменты создания:
Для Windows: установить Visual Studio
Для Unix: GCC (вероятно, уже установлен)
Для MacOS: установлены инструменты Xcode CMD (введите gcc в терминале, чтобы проверить, установлен ли он)
Более быстрая ОС лицензирована в соответствии с общественной лицензией Mozilla 2.0. Это означает, что вы можете использовать его в коммерческих/проприетарных проектах, с кодом закрытого исходного кода. Вам не нужно раскрывать исходный код.
Мы рекомендуем прочитать официальную документацию модуля ОС, так как все более быстрые функции ОС «поведение« зеркально »из функций ОС. Ниже вы можете найти короткую документацию на всех более быстрых функциях ОС.
faster_os.path.normpath(path: str) -> str
Нормализует путь: заменяет «/'» на Windows (или на противоположность Unix) и делает другие изменения, связанные с'. и '..'.
faster_os.path.normcase(path: str) -> str
Снимите путь ( str.lower ) и заменяет '/' '' 'на Windows (или на противоположность UNIX).
faster_os.path.split(path: str) -> tuple
Возвращает кортеж с путем, разделенным на имя каталога и базовое имя:
Пример: «некоторые/пример/path» -> ('some/example', 'path')
faster_os.path.splitdrive(path: str) -> tuple
Имеет смысл только в Windows: расщепляет путь в диск и путь.
Пример: 'C:\Windows' -> ('C:', '\Windows')
faster_os.path.isabs(path: str) -> cython.bint
Проверяет, является ли путь абсолютным.
Пример:
'C:\some absolute\path' -> True
'some\relative\path\' -> False
faster_os.path.join(path: str, *paths) -> str
Соединяет все заданные пути с использованием DeLimiter Platform ('/' или '').
Пример:
faster_os.path.('C:\', 'some', 'path') -> 'C:\some\path'
faster_os.path.splitext(path: str) -> tuple
Разбивает путь в путь и расширение.
Пример:
'a photo.jpg' -> ('a photo', '.jpg')
faster_os.path.basename(path: str) -> str
Возвращает базовое название пути.
'C:\some absolute\path' -> 'path'
faster_os.path.dirname(path: str) -> str
Возвращает название каталога пути.
'C:\some absolute\path' -> 'C:\some absolute\'
faster_os.path.ismount(path: str) -> cython.bint
Проверяет, является ли путь монтажной точкой.
faster_os.path.expanduser(path: str) -> str
Расширяет «~» в профиль пользователя или домашний путь.
Пример:
'~Desktop' - > 'C: \ Users \ Desktop
'~ \ Desktop' - > 'C: \ Users \ User \ Desktop
^ ^ notice this slash faster_os.path.relpath(tail: str, root=None) -> str
Вычисляет относительный путь tail в зависимости от root .
Если root нет, то он назначен текущим рабочим каталогам os.getcwd() .
faster_os.path.commonprefix(paths) -> str
Находит общий префикс заданных путей.
Пример:
['faster_os/abc', 'faster_os/abcde', 'faster_os/abc123'] -> 'faster_os/abc'
faster_os.path.commonpath(paths) -> str
Находит общий путь заданных путей.
Контратирование CommonPrefix, находит полный путь.
Пример:
['faster_os/abc', 'faster_os/abcde', 'faster_os/abc123'] -> 'faster_os'
faster_os.path.abspath(path: str) -> str
Пытается получить абсолютный путь, используя API операционной системы, или возвращается к соединению по пути с CWD.
faster_os.path.multi_split(paths) -> list
Принимает любой идентификатор (список, кортеж и т. Д.) И применяется разделить на каждый элемент.
Возвращает список.
faster_os.path.multi_normpath(paths) -> list
Принимает любой идентификатор (список, кортеж и т. Д.) И применяет Normpath к каждому элементу.
Возвращает список.
faster_os.path.multi_normcase(paths) -> list
Берет любой идентификатор (список, кортеж и т. Д.) И применяет NormCase к каждому элементу.
Возвращает список.
faster_os.path.multi_splitdrive(paths) -> list
Принимает любой идентификационный (список, кортеж и т. Д.) И применяет SplitDrive к каждому элементу.
Возвращает список.
faster_os.path.multi_isabs(paths) -> list
Берет любой идентификационный (список, кортеж и т. Д.) И применяет ISAB к каждому элементу.
Возвращает список.
faster_os.path.multi_join(paths) -> list
Принимает любой идентификатор (список, кортеж и т. Д.) И применяется соединение к каждому элементу.
Возвращает список.
faster_os.path.multi_splitext(paths) -> list
Принимает любой идентификатор (список, кортеж и т. Д.) И применяет Splitext к каждому элементу.
Возвращает список.
faster_os.path.multi_basename(paths) -> list
Берет любой идентификатор (список, кортеж и т. Д.) И применяет базовое имя к каждому элементу.
Возвращает список.
faster_os.path.multi_dirname(paths) -> list
Берет любой иерный (список, кортеж и т. Д.) И применяет DirName к каждому элементу.
Возвращает список.
faster_os.path.multi_relpath(paths) -> list
Берет любой идентификационный (список, кортеж и т. Д.) И применяет RelPath к каждому элементу.
Возвращает список.
faster_os.path.multi_expanduser(paths) -> list
Принимает любой идентификационный (список, кортеж и т. Д.) И применяет Expander для каждого элемента.
Возвращает список.
faster_os.path.multi_ismount(paths) -> list
Принимает любой идентификатор (список, кортеж и т. Д.) И применяется к каждому элементу.
Возвращает список.
faster_os.path.multi_abspath(paths) -> list
Принимает любой идентификатор (список, кортеж и т. Д.) И применяет ABSPATH к каждому элементу.
Возвращает список.
faster_os.path.multi_commonprefix(paths) -> list
Принимает любой идентификатор (список, кортеж и т. Д.) И применяет CommonPrefix к каждому элементу.
Возвращает список.
faster_os.path.multi_commonpath(paths) -> list
Принимает любой идентификационный (список, кортеж и т. Д.) И применяет CommonPath к каждому элементу.
Возвращает список.
faster_os.removedirs(path) -> None
Удаляет все компоненты пути, пока исключение не будет поднято.
removedirs попытаются удалить каждый каталог до тех пор, пока не будет поднята ошибка, например, каталог не пуст или есть ошибка разрешения: например:
Given path "C:UsersUserDesktopmany f oldershere"
Delete "C:UsersUserDesktopmany f oldershere"
Delete "C:UsersUserDesktopmany f olders"
Delete "C:UsersUserDesktopmany"
Delete "C:UsersUserDesktop " -> ERROR - return faster_os.remove_multiple_dirs(paths) -> None
Берет любой идентификационный (список, кортеж и т. Д.) И применяется removedirs к каждому элементу.