El sistema operativo más rápido es un reemplazo para el módulo estándar de 'OS' estándar de Python. Faster OS ofrece 32 funciones totalmente reescritas, optimizadas y aceleradas, que reemplazan las del módulo os.path .
Gracias al sistema operativo más rápido, puede procesar 1,400,000 rutas en solo un minuto , mientras que tomaría más de una hora con un módulo del sistema operativo.
# Use Faster OS to save hours of processing time!
# The only thing you need to do is write...
import faster_os as os Rápido. Optimizado. Tiene 0 dependencias. Luz.
Se usa un sistema operativo más rápido en:
Myquickmac Neo - Un programa revolucionario para el cuidado de AI de su Mac - www.ambeteco.com/myquickmac-neo
Myquickmac Lite - Un programa innovador para la gestión de archivos de IA - www.ambeteco.com/myquickmac -lite
4-Organizer Ultra : un poderoso programa para desembolsar automáticamente su PC de Windows, alimentada por AI-www.ambeteco.com/4-organizer-ultra
4-Organizer Nano -Automáticamente asciende a su PC y pone fin al caos infinito de los archivos-www.ambeteco.com/4-organizer-nano
Limpiaparabrisas ai : en desarrollo, disponible pronto
El sistema operativo más rápido es una herramienta estable lista para la producción.
En promedio, una función OS más rápida es 1504% más rápida que una función original del módulo OS.
Las funciones más utilizadas ( split , join , splitext ) son en promedio 1215% más rápidas :
| Nombre | Veces más rápido | OS más rápido: procesar 1,000,000 de rutas | OS: proceso 1,000,000 de rutas |
|---|---|---|---|
join | 1530% | 14 segundos | 3 minutos 20 segundos |
splitext | 1059% | 8 segundos | 1 minuto 33 segundos |
split | 1190% | 18 segundos | 4 minutos 43 segundos |
Resultados de referencia completos:
| Función | Cantidad de caminos | Veces más rápido | Tiempo de OS | Tiempo de os más rápido |
|---|---|---|---|---|
| dividir | 5500 | 1105% | 0.8109 | 0.0733 |
| splive | 5500 | 445% | 0.3849 | 0.0864 |
| norma | 5500 | 313% | 0.1608 | 0.0513 |
| splitext | 5500 | 938% | 0.5017 | 0.0535 |
| unirse | 5000 | 1442% | 1.4388 | 0.0997 |
| relpath | 5500 | 3653% | 12.1418 | 0.3323 |
| Ismount | 5500 | 3620% | 71.5931 | 1.9776 |
| Normpath | 6500 | 326% | 1.9621 | 0.6026 |
| expandante | 5500 | 493% | 0.1539 | 0.0312 |
| absurdo | 5500 | 180% | 3.5075 | 1.9471 |
| isabs | 5500 | 760% | 0.6911 | 0.0909 |
| nombre de base | 5500 | 1217% | 0.8403 | 0.0690 |
| nombre | 5500 | 1236% | 0.8473 | 0.0685 |
| Path común | 5000 | 738% | 4.4296 | 0.5998 |
| CommonPrefix | 5000 | 356% | 0.9480 | 0.2661 |
Resultados de referencia de múltiples funciones:
| Función | Cantidad de fragmentos (cada 50-100 rutas) | Veces más rápido | Tiempo de os más rápido | Tiempo de OS |
|---|---|---|---|---|
| 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 |
Recomendamos usar multi-functions cuando el ITerable dado tenga más de 250 elementos. Para listas más pequeñas, usar multi-functions es ineficaz.
# 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
Clone The Reposyory: git clone https://github.com/American-Best-Technologies-Company/faster-os.git
Ejecutar python3 setup.py build_ext
¡Hecho! Verificar la instalación: import faster_os
Si los argumentos dados son válidos, entonces el sistema operativo más rápido funciona absolutamente de la misma manera que el módulo del sistema operativo. Significa que si usa un sistema operativo más rápido en cualquier ruta válida, funcionará exactamente como el módulo del sistema operativo .
Si pasa un camino inválido como argumento a las funciones de SO más rápidas, entonces la mayoría de las excepciones planteadas por él no coincidirán con las que plantean el módulo del sistema operativo.
Por ejemplo, en este caso, las excepciones planteadas por el sistema operativo y el sistema operativo más rápido son las mismas :
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 foundPero a veces, las excepciones planteadas pueden ser diferentes :
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'La razón principal de esto es el objetivo principal de OS más rápido: la velocidad.
Agregar comprobaciones de validez de tipo y rutas reducirá significativamente el sistema operativo más rápido. En este momento, no planeamos agregar ninguna verificación de tipo o alguna validación a las funciones del sistema operativo más rápido. Debido a esto, las excepciones podrían no ser tan legibles o fáciles de entender.
Actualmente, el sistema operativo más rápido solo admite str . El soporte bytes se agregará en las próximas actualizaciones. Tal vez, incluso el objeto os.PathLike se admitirá en los próximos lanzamientos.
Python 3
C Build Tools:
Para Windows: tener Visual Studio instalado
Para Unix: GCC (probablemente ya instalado)
Para macOS: tenga instaladas herramientas de CMD Xcode (escriba gcc en el terminal para verificar si está instalado)
El sistema operativo más rápido tiene licencia bajo la licencia pública de Mozilla 2.0. Significa que puede usarlo en proyectos comerciales/patentados, con código fuente cerrado. No necesita revelar el código fuente.
Recomendamos leer la documentación oficial del módulo del sistema operativo, ya que todas las funciones del sistema operativo más rápido 'el comportamiento se' refleja 'a partir de las funciones del sistema operativo. A continuación, puede encontrar una breve documentación en todas las funciones del sistema operativo más rápido.
faster_os.path.normpath(path: str) -> str
Normaliza la ruta: reemplaza '/' a '' en Windows (o lo contrario en UNIX), y hace otros cambios relacionados con '. y '..'.
faster_os.path.normcase(path: str) -> str
Baja la ruta ( str.lower ) y reemplaza '/' a '' en Windows (o lo contrario en UNIX).
faster_os.path.split(path: str) -> tuple
Devuelve una tupla con la ruta dividida en el nombre del directorio y el nombre base:
Ejemplo: 'Some/Ej./Path' -> ('Some/Ejemplo', 'Path')
faster_os.path.splitdrive(path: str) -> tuple
Solo tiene sentido en Windows: divide la ruta en la unidad y la ruta.
Ejemplo: 'C:\Windows' -> ('C:', '\Windows')
faster_os.path.isabs(path: str) -> cython.bint
Comprueba si una ruta es absoluta.
Ejemplo:
'C:\some absolute\path' -> True
'some\relative\path\' -> False
faster_os.path.join(path: str, *paths) -> str
Se une a todas las rutas dadas usando la plataforma delimitador ('/' o '').
Ejemplo:
faster_os.path.('C:\', 'some', 'path') -> 'C:\some\path'
faster_os.path.splitext(path: str) -> tuple
Divide el camino hacia la ruta y la extensión.
Ejemplo:
'a photo.jpg' -> ('a photo', '.jpg')
faster_os.path.basename(path: str) -> str
Devuelve el nombre base de una ruta.
'C:\some absolute\path' -> 'path'
faster_os.path.dirname(path: str) -> str
Devuelve el nombre del directorio de una ruta.
'C:\some absolute\path' -> 'C:\some absolute\'
faster_os.path.ismount(path: str) -> cython.bint
Comprueba si una ruta es un punto de montaje.
faster_os.path.expanduser(path: str) -> str
Expande el '~' en el perfil de usuario o la ruta de inicio.
Ejemplo:
'~Desktop' - > 'C: \ Users \ Desktop
'~ \ Desktop' - > 'C: \ Users \ User \ Desktop
^ ^ notice this slash faster_os.path.relpath(tail: str, root=None) -> str
Calcula la ruta relativa de la tail según la root .
Si root no es Ninguno, entonces se asigna al directorio de trabajo actual os.getcwd() .
faster_os.path.commonprefix(paths) -> str
Encuentra el prefijo común de las rutas dadas.
Ejemplo:
['faster_os/abc', 'faster_os/abcde', 'faster_os/abc123'] -> 'faster_os/abc'
faster_os.path.commonpath(paths) -> str
Encuentra el camino común de las rutas dadas.
Contraty a CommonPrefix, encuentra el camino completo.
Ejemplo:
['faster_os/abc', 'faster_os/abcde', 'faster_os/abc123'] -> 'faster_os'
faster_os.path.abspath(path: str) -> str
Intenta obtener la ruta absoluta utilizando la API del sistema operativo, o se vuelve a unir la ruta con CWD.
faster_os.path.multi_split(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica dividido a cada elemento.
Devuelve una lista.
faster_os.path.multi_normpath(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica Normpath a cada elemento.
Devuelve una lista.
faster_os.path.multi_normcase(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica normasa a cada elemento.
Devuelve una lista.
faster_os.path.multi_splitdrive(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica SplitDrive a cada elemento.
Devuelve una lista.
faster_os.path.multi_isabs(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica isabs a cada elemento.
Devuelve una lista.
faster_os.path.multi_join(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica unirse a cada elemento.
Devuelve una lista.
faster_os.path.multi_splitext(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica Splitext a cada elemento.
Devuelve una lista.
faster_os.path.multi_basename(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica el nombre de base a cada elemento.
Devuelve una lista.
faster_os.path.multi_dirname(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica Dirname a cada elemento.
Devuelve una lista.
faster_os.path.multi_relpath(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica relpath a cada elemento.
Devuelve una lista.
faster_os.path.multi_expanduser(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica expandido a cada elemento.
Devuelve una lista.
faster_os.path.multi_ismount(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica ismount a cada elemento.
Devuelve una lista.
faster_os.path.multi_abspath(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica abspath a cada elemento.
Devuelve una lista.
faster_os.path.multi_commonprefix(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica CommonPrefix a cada elemento.
Devuelve una lista.
faster_os.path.multi_commonpath(paths) -> list
Toma cualquier iterable (lista, tupla, etc.) y aplica CommonPath a cada elemento.
Devuelve una lista.
faster_os.removedirs(path) -> None
Elimina todos los componentes de la ruta hasta que se plantee la excepción.
removedirs intentará eliminar cada directorio hasta que se plantee el error, por ejemplo, un directorio no está vacío o hay un error de permiso: por ejemplo:
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
Toma cualquier iterable (lista, tupla, etc.) y aplica removedirs a cada elemento.