더 빠른 OS는 Python의 표준 'OS'모듈을 대체하는 드롭 인 교체입니다. 더 빠른 OS는 os.path 모듈의 기능을 대체하는 32 개의 완전 복사, 최적화 및 속도가 높은 기능을 제공합니다.
더 빠른 OS 덕분에 단 1 분 안에 1,400,000 개의 경로를 처리 할 수 있지만 OS 모듈에서 1 시간 이상이 걸립니다.
# Use Faster OS to save hours of processing time!
# The only thing you need to do is write...
import faster_os as os 빠른. 최적화. 의존성이 0입니다. 빛.
더 빠른 OS가 사용됩니다.
MyQuickMac Neo- Mac의 AI- 강력한 관리를위한 혁신적인 프로그램 -www.ambeteco.com/myquickmac-neo
MyQuickMac Lite- AI 파일 관리를위한 혁신적인 프로그램 -www.ambeteco.com/myquickmac-lite
4-Organizer Ultra- ai-www.ambeteco.com/4-organizer-ultra로 구동되는 Windows PC를 자동으로 모색하는 강력한 프로그램.
4- 조직기 나노 -PC를 자동으로 정리하고 파일의 무한한 혼란을 종식시킵니다 -www.ambeteco.com/4- organizer-nano
와이퍼 AI- 개발 중입니다
더 빠른 OS는 안정적이고 생산 준비 도구입니다.
평균적으로 OS 기능이 OS 모듈의 원래 기능보다 1504% 빠릅니다 .
가장 많이 사용되는 함수 ( split , join , splitext )는 평균 1215% 더 빠릅니다 .
| 이름 | 더 빨리 | 더 빠른 OS : 1,000,000 경로를 처리하십시오 | OS : 1,000,000 경로를 처리하십시오 |
|---|---|---|---|
join | 1530% | 14 초 | 3 분 20 초 |
splitext | 1059% | 8 초 | 1 분 33 초 |
split | 1190% | 18 초 | 4 분 43 초 |
전체 벤치 마크 결과 :
| 기능 | 경로 금액 | 더 빨리 | OS 시간 | 더 빠른 OS 시간 |
|---|---|---|---|---|
| 나뉘다 | 5500 | 1105% | 0.8109 | 0.0733 |
| Splitdrive | 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 |
| NORMPATH | 6500 | 326% | 1.9621 | 0.6026 |
| Expanduser | 5500 | 493% | 0.1539 | 0.0312 |
| abspath | 5500 | 180% | 3.5075 | 1.9471 |
| Isabs | 5500 | 760% | 0.6911 | 0.0909 |
| 베이스 이름 | 5500 | 1217% | 0.8403 | 0.0690 |
| 더 이름 | 5500 | 1236% | 0.8473 | 0.0685 |
| 공동 경로 | 5000 | 738% | 4.4296 | 0.5998 |
| CommonPrefix | 5000 | 356% | 0.9480 | 0.2661 |
다기능 벤치 마크 결과 :
| 기능 | 청크 금액 (각 50-100 경로) | 더 빨리 | 더 빠른 OS 시간 | 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 |
주어진 반짝이는 반복에 250 개 이상의 요소가있을 때 multi-functions 사용하는 것이 좋습니다. 더 작은 목록의 경우 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
주어진 인수가 유효하면 더 빠른 OS는 OS 모듈과 동일한 방식으로 작동합니다. 유효한 경로에서 더 빠른 OS를 사용하면 OS 모듈과 똑같이 작동한다는 것을 의미합니다.
더 빠른 OS의 기능에 대한 인수로 유효하지 않은 경로를 전달하면 대부분의 예외는 OS 모듈에 의해 제기 된 예외 와 일치하지 않습니다 .
예를 들어,이 경우 OS와 더 빠른 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'이것의 주된 이유는 더 빠른 OS의 주요 목표 : 속도입니다.
유형 및 경로 유효성 검사를 추가하면 OS가 더 빠르게 느려집니다. 현재 우리는 더 빠른 OS 기능에 유형 확인 또는 일부 검증을 추가 할 계획이 없습니다 . 이 때문에 예외는 인간이 읽을 수 있거나 이해하기 쉽지 않을 수 있습니다.
현재 더 빠른 OS는 str 만 지원합니다. bytes 지원은 다음 업데이트에 추가됩니다. 아마도 다음 릴리스에서 os.PathLike 객체조차 지원 될 수 있습니다.
파이썬 3
C 빌드 도구 :
Windows : Visual Studio를 설치하십시오
UNIX 용 : GCC (아마 이미 설치되어 있음)
MACOS : Xcode CMD 도구가 설치되어 있습니다 (설치되었는지 확인하려면 터미널에 gcc 입력하십시오)
더 빠른 OS는 Mozilla Public License 2.0에 따라 라이센스가 부여됩니다. 이는 폐쇄 소스 코드와 함께 상업/독점 프로젝트에서 사용할 수 있음을 의미합니다. 소스 코드를 공개 할 필요가 없습니다.
모든 더 빠른 OS 기능 '동작이'미러링 '되어 OS 기능에서 공식 OS 모듈 문서를 읽는 것이 좋습니다. 아래에서는 모든 빠른 OS 기능에 대한 짧은 문서를 찾을 수 있습니다.
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
경로가 디렉토리 이름과 기본 이름으로 분할 된 튜플을 반환합니다.
예 : '일부/example/path' -> ( 'some/example', 'path')
faster_os.path.splitdrive(path: str) -> tuple
창에서만 의미가 있습니다. 경로를 드라이브와 경로로 나눕니다.
예 : '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
플랫폼 구분 기자 ( '/'또는 '')를 사용하여 주어진 모든 경로에 결합합니다.
예:
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
root 에 따라 tail 의 상대 경로를 계산합니다.
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
반복 가능한 모든 (목록, 튜플 등)를 취하고 각 요소에 표준을 적용합니다.
목록을 반환합니다.
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
반복 가능한 모든 (목록, 튜플 등)를 취하고 각 요소에 더 나인을 적용합니다.
목록을 반환합니다.
faster_os.path.multi_relpath(paths) -> list
반복 가능한 모든 (목록, 튜플 등)를 취하고 각 요소에 RelPath를 적용합니다.
목록을 반환합니다.
faster_os.path.multi_expanduser(paths) -> list
반복 가능한 모든 (목록, 튜플 등)를 취하고 각 요소에 Expanduser를 적용합니다.
목록을 반환합니다.
faster_os.path.multi_ismount(paths) -> list
반복 가능한 모든 (목록, 튜플 등)를 취하고 각 요소에 ISMount를 적용합니다.
목록을 반환합니다.
faster_os.path.multi_abspath(paths) -> list
반복 가능한 모든 (목록, 튜플 등)를 취하고 각 요소에 AbsPath를 적용합니다.
목록을 반환합니다.
faster_os.path.multi_commonprefix(paths) -> list
반복 가능한 모든 (목록, 튜플 등)를 취하고 각 요소에 CommonPrefix를 적용합니다.
목록을 반환합니다.
faster_os.path.multi_commonpath(paths) -> list
반복 가능한 모든 (목록, 튜플 등)를 취하고 각 요소에 공통 경로를 적용합니다.
목록을 반환합니다.
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 적용합니다.