OS yang lebih cepat adalah pengganti drop-in untuk modul 'OS' standar Python. OS yang lebih cepat menawarkan 32 fungsi yang sepenuhnya dioptimalkan, dioptimalkan, dan dipercepat, yang menggantikan yang dalam modul os.path .
Berkat OS yang lebih cepat, Anda dapat memproses 1.400.000 jalur hanya dalam satu menit , sementara itu akan memakan waktu lebih dari satu jam dengan modul OS.
# Use Faster OS to save hours of processing time!
# The only thing you need to do is write...
import faster_os as os Cepat. Dioptimalkan. Memiliki 0 dependensi. Lampu.
OS yang lebih cepat digunakan dalam:
Myquickmac Neo - program revolusioner untuk perawatan bertenaga AI Anda - www.ambeteco.com/myquickmac -neo
Myquickmac Lite - program inovatif untuk manajemen file AI - www.ambeteco.com/myquickmac-lite
4-Organizer Ultra -program yang kuat untuk secara otomatis melepas Windows PC Anda, ditenagai oleh AI-www.ambeteco.com/4-Organizer-ultra
4-Organizer Nano -secara otomatis merapikan PC Anda dan mengakhiri kekacauan file yang tak terbatas-www.ambeteco.com/4-Organizer-nano
Wiper AI - sedang dikembangkan, segera tersedia
OS yang lebih cepat adalah alat yang stabil dan siap-produksi.
Rata -rata, fungsi OS yang lebih cepat adalah 1504% lebih cepat dari fungsi asli dari modul OS.
Fungsi yang paling banyak digunakan ( split , join , splitext ) rata-rata 1215% lebih cepat :
| Nama | Kali lebih cepat | OS yang lebih cepat: Proses 1.000.000 jalur | OS: Proses 1.000.000 jalur |
|---|---|---|---|
join | 1530% | 14 detik | 3 menit 20 detik |
splitext | 1059% | 8 detik | 1 menit 33 detik |
split | 1190% | 18 detik | 4 menit 43 detik |
Hasil Benchmark Lengkap:
| Fungsi | Jumlah jalur | Kali lebih cepat | Waktu os | Waktu OS yang lebih cepat |
|---|---|---|---|---|
| membelah | 5500 | 1105% | 0.8109 | 0,0733 |
| splitDrive | 5500 | 445% | 0.3849 | 0,0864 |
| normcase | 5500 | 313% | 0.1608 | 0,0513 |
| splitext | 5500 | 938% | 0.5017 | 0,0535 |
| bergabung | 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 |
| Isab | 5500 | 760% | 0.6911 | 0,0909 |
| nama dasar | 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 |
Hasil Benchmark Multi-Fungsi:
| Fungsi | Jumlah potongan (masing-masing jalur 50-100) | Kali lebih cepat | Waktu OS yang lebih cepat | Waktu 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 |
Kami merekomendasikan penggunaan multi-functions ketika Iterable yang diberikan memiliki lebih dari 250 elemen. Untuk daftar yang lebih kecil, menggunakan multi-functions tidak efektif.
# 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
Klon The Repository: git clone https://github.com/American-Best-Technologies-Company/faster-os.git
Jalankan python3 setup.py build_ext
Selesai! Verifikasi Instalasi: import faster_os
Jika argumen yang diberikan valid maka OS yang lebih cepat bekerja sama sekali sama dengan modul OS. Ini berarti bahwa jika Anda menggunakan OS yang lebih cepat pada jalur yang valid, itu akan berfungsi persis seperti modul OS .
Jika Anda akan melewati beberapa jalur yang tidak valid sebagai argumen untuk fungsi OS yang lebih cepat, maka sebagian besar pengecualian yang diangkat olehnya tidak akan cocok dengan yang diangkat oleh modul OS.
Misalnya, dalam hal ini, pengecualian yang diangkat oleh OS dan OS yang lebih cepat adalah sama :
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 foundNamun terkadang, pengecualian yang diangkat bisa berbeda :
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'Alasan utama untuk ini adalah tujuan utama OS yang lebih cepat: kecepatan.
Menambahkan Jenis dan Paths Pemeriksaan Validitas akan secara signifikan memperlambat OS yang lebih cepat. Saat ini, kami tidak berencana untuk menambahkan cek jenis apa pun atau beberapa validasi ke fungsi OS yang lebih cepat. Karena itu, pengecualian mungkin tidak dapat dibaca manusia atau mudah dimengerti.
Saat ini, OS yang lebih cepat hanya mendukung str . Dukungan bytes akan ditambahkan dalam pembaruan berikutnya. Mungkin, bahkan objek os.PathLike akan didukung dalam rilis berikutnya.
Python 3
C TOOLS BUILD:
Untuk windows: menginstal visual studio
Untuk UNIX: GCC (mungkin sudah diinstal)
Untuk MacOS: Miliki alat XCode CMD yang diinstal (ketik gcc di terminal untuk memeriksa apakah diinstal)
OS yang lebih cepat dilisensikan di bawah Lisensi Publik Mozilla 2.0. Ini berarti Anda dapat menggunakannya dalam proyek komersial/hak milik, dengan kode sumber tertutup. Anda tidak perlu mengungkapkan kode sumber.
Kami merekomendasikan membaca dokumentasi modul OS resmi, karena semua perilaku OS fungsi yang lebih cepat 'dicerminkan' dari fungsi OS. Di bawah ini, Anda dapat menemukan dokumentasi singkat tentang semua fungsi OS yang lebih cepat.
faster_os.path.normpath(path: str) -> str
Normalisasi jalur: Mengganti '/' ke '' pada windows (atau sebaliknya pada UNIX), dan apakah perubahan lain terkait dengan '.' Dan '..'.
faster_os.path.normcase(path: str) -> str
Menurunkan jalur ( str.lower ) dan mengganti '/' ke '' pada windows (atau sebaliknya di UNIX).
faster_os.path.split(path: str) -> tuple
Mengembalikan tuple dengan jalur yang terpecah menjadi nama direktori dan nama dasar:
Contoh: 'beberapa/contoh/path' -> ('beberapa/contoh', 'path')
faster_os.path.splitdrive(path: str) -> tuple
Hanya masuk akal di Windows: Membagi jalur ke dalam drive dan jalan setapak.
Contoh: 'C:\Windows' -> ('C:', '\Windows')
faster_os.path.isabs(path: str) -> cython.bint
Memeriksa apakah jalur itu mutlak.
Contoh:
'C:\some absolute\path' -> True
'some\relative\path\' -> False
faster_os.path.join(path: str, *paths) -> str
Bergabung dengan semua jalur yang diberikan menggunakan platform pembatas ('/' atau '').
Contoh:
faster_os.path.('C:\', 'some', 'path') -> 'C:\some\path'
faster_os.path.splitext(path: str) -> tuple
Membagi jalur ke jalur dan ekstensi.
Contoh:
'a photo.jpg' -> ('a photo', '.jpg')
faster_os.path.basename(path: str) -> str
Mengembalikan nama dasar jalan.
'C:\some absolute\path' -> 'path'
faster_os.path.dirname(path: str) -> str
Mengembalikan nama direktori jalan.
'C:\some absolute\path' -> 'C:\some absolute\'
faster_os.path.ismount(path: str) -> cython.bint
Periksa apakah jalur adalah titik pemasangan.
faster_os.path.expanduser(path: str) -> str
Memperluas '~' ke profil pengguna atau jalur rumah.
Contoh:
'~Desktop' - > 'C: \ Users \ Desktop
'~ \ Desktop' - > 'C: \ Users \ User \ Desktop
^ ^ notice this slash faster_os.path.relpath(tail: str, root=None) -> str
Menghitung jalur relatif tail tergantung pada root .
Jika root tidak ada, maka itu ditugaskan ke direktori kerja saat ini os.getcwd() .
faster_os.path.commonprefix(paths) -> str
Menemukan awalan umum dari jalur yang diberikan.
Contoh:
['faster_os/abc', 'faster_os/abcde', 'faster_os/abc123'] -> 'faster_os/abc'
faster_os.path.commonpath(paths) -> str
Menemukan jalur umum jalur yang diberikan.
Bertentangan dengan CommonPrefix, menemukan jalur lengkap.
Contoh:
['faster_os/abc', 'faster_os/abcde', 'faster_os/abc123'] -> 'faster_os'
faster_os.path.abspath(path: str) -> str
Mencoba untuk mendapatkan jalur absolut menggunakan API sistem operasi, atau jatuh kembali untuk bergabung dengan jalur dengan CWD.
faster_os.path.multi_split(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan berlaku terpisah untuk setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_normpath(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan menerapkan normpath untuk setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_normcase(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan menerapkan normcase untuk setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_splitdrive(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan menerapkan splitdrive untuk setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_isabs(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan menerapkan isab untuk setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_join(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan berlaku bergabung dengan setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_splitext(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan menerapkan splitext untuk setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_basename(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan menerapkan nama dasar untuk setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_dirname(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan menerapkan dirname untuk setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_relpath(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan berlaku relpath untuk setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_expanduser(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan menerapkan ekspanduser untuk setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_ismount(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan menerapkan ismount untuk setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_abspath(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan menerapkan abspath untuk setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_commonprefix(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan menerapkan CommonPrefix untuk setiap elemen.
Mengembalikan daftar.
faster_os.path.multi_commonpath(paths) -> list
Mengambil iterable (daftar, tuple, dll) dan berlaku umum untuk setiap elemen.
Mengembalikan daftar.
faster_os.removedirs(path) -> None
Menghapus semua komponen jalur sampai pengecualian dinaikkan.
removedirs akan mencoba menghapus setiap direktori sampai kesalahan dinaikkan, misalnya, direktori tidak kosong atau ada kesalahan izin: misalnya:
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
Mengambil iterable (daftar, tuple, dll) dan menerapkan removedirs untuk setiap elemen.