Hướng dẫn python convert number to kilo mega giga - python chuyển đổi số thành kilo mega giga

Tôi không biết đây có phải là câu trả lời tốt nhất nhưng nó đang hoạt động trong trường hợp của tôi. Hãy thoải mái xác minh giải pháp của tôi. Tôi đang làm việc lần đầu tiên với Python và những lời chỉ trích mang tính xây dựng được hoan nghênh ... cùng với phản hồi tích cực: D Đây là mã của tôi:
This is my code:

class Units:
def __init__[self]:
    global si;
    si = {
          -18 : {'multiplier' : 10 ** 18, 'prefix' : 'a'},
          -17 : {'multiplier' : 10 ** 18, 'prefix' : 'a'},
          -16 : {'multiplier' : 10 ** 18, 'prefix' : 'a'},
          -15 : {'multiplier' : 10 ** 15, 'prefix' : 'f'},
          -14 : {'multiplier' : 10 ** 15, 'prefix' : 'f'},
          -13 : {'multiplier' : 10 ** 15, 'prefix' : 'f'},
          -12 : {'multiplier' : 10 ** 12, 'prefix' : 'p'},
          -11 : {'multiplier' : 10 ** 12, 'prefix' : 'p'},
          -10 : {'multiplier' : 10 ** 12, 'prefix' : 'p'},
          -9 : {'multiplier' : 10 ** 9, 'prefix' : 'n'},
          -8 : {'multiplier' : 10 ** 9, 'prefix' : 'n'},
          -7 : {'multiplier' : 10 ** 9, 'prefix' : 'n'},
          -6 : {'multiplier' : 10 ** 6, 'prefix' : 'u'},
          -5 : {'multiplier' : 10 ** 6, 'prefix' : 'u'},
          -4 : {'multiplier' : 10 ** 6, 'prefix' : 'u'},
          -3 : {'multiplier' : 10 ** 3, 'prefix' : 'm'},
          -2 : {'multiplier' : 10 ** 2, 'prefix' : 'c'},
          -1 : {'multiplier' : 10 ** 1, 'prefix' : 'd'},
           0 : {'multiplier' : 1, 'prefix' : ''},
           1 : {'multiplier' : 10 ** 1, 'prefix' : 'da'},
           2 : {'multiplier' : 10 ** 3, 'prefix' : 'k'},
           3 : {'multiplier' : 10 ** 3, 'prefix' : 'k'},
           4 : {'multiplier' : 10 ** 3, 'prefix' : 'k'},
           5 : {'multiplier' : 10 ** 3, 'prefix' : 'k'},
           6 : {'multiplier' : 10 ** 6, 'prefix' : 'M'},
           7 : {'multiplier' : 10 ** 6, 'prefix' : 'M'},
           8 : {'multiplier' : 10 ** 6, 'prefix' : 'M'},
           9 : {'multiplier' : 10 ** 9, 'prefix' : 'G'},
          10 : {'multiplier' : 10 ** 9, 'prefix' : 'G'},
          11 : {'multiplier' : 10 ** 9, 'prefix' : 'G'},
          12 : {'multiplier' : 10 ** 12, 'prefix' : 'T'},
          13 : {'multiplier' : 10 ** 12, 'prefix' : 'T'},
          14 : {'multiplier' : 10 ** 12, 'prefix' : 'T'},
          15 : {'multiplier' : 10 ** 15, 'prefix' : 'P'},
          16 : {'multiplier' : 10 ** 15, 'prefix' : 'P'},
          17 : {'multiplier' : 10 ** 15, 'prefix' : 'P'},
          18 : {'multiplier' : 10 ** 18, 'prefix' : 'E'},
          }

def convert[self, number]:
    # Checking if its negative or positive
    if number < 0:
        negative = True;
    else:
        negative = False;

    # if its negative converting to positive [math.log[]....]
    if negative:
        number = number - [number*2];

    # Taking the exponent
    exponent = int[math.log10[number]];

    # Checking if it was negative converting it back to negative
    if negative:
        number = number - [number*2];

    # If the exponent is smaler than 0 dividing the exponent with -1
    if exponent < 0:
        exponent = exponent-1;
        return [number * si[exponent]['multiplier'], si[exponent]['prefix']]; 
    # If the exponent bigger than 0 just return it
    elif exponent > 0:
        return [number / si[exponent]['multiplier'], si[exponent]['prefix']]; 
    # If the exponent is 0 than return only the value
    elif exponent == 0:
        return [number, ''];


Và đây là cách nó hoạt động:

c1 = +1.189404E-010
fres = -4.07237500000000E+007;
ls = +1.943596E-005;

units = sci.Units[];
rValue, rPrefix = units.convert[c1];
print rValue;
print rPrefix;

print units.convert[fres];
print units.convert[ls];

Và phản hồi là:

118.9404
p
[-40.72375, 'M']
[19.435959999999998, 'u']

Tôi không biết có ai sẽ thấy điều này hữu ích hay không. Tôi hy vọng bạn làm. Tôi đã đăng ở đây để những người muốn giúp đỡ để xem nó cũng cho họ ý tưởng có thể họ có thể tối ưu hóa nó :]

Hình ảnh: Pixabay

Hầu hết mọi người đều quen thuộc với một vài tiền tố phổ biến hơn được sử dụng trước nhiều đơn vị để biểu thị một phần hoặc bội số của đơn vị - kg, megabyte, centimet, v.v. lên đến Yotta và ngay xuống Yocto.

Như một bài tập đơn giản nhưng hy vọng sẽ khai sáng, tôi đã tập hợp chương trình Python ngắn này để liệt kê tất cả các tiền tố cùng với

Kiểm tra xem tệp có tồn tại trước khi kiểm tra kích thước của tệp không

Nếu tệp không tồn tại ở đường dẫn đã cho, thì tất cả các chức năng được tạo ở trên để nhận kích thước tệp có thể gây ra lỗi. Do đó, trước tiên chúng ta nên kiểm tra xem tệp có tồn tại hay không, nếu có thì chỉ kiểm tra kích thước của nó,

Vì tệp ‘dummy_file.txt, không tồn tại, vì vậy chúng ta không thể tính toán kích thước của nó.

os.path.getsize[path]

Ví dụ hoàn chỉnh như sau,
If the file doesn’t exist at the given path or it is inaccessible, then it raises an os.error. Therefore, always check that file exist or not before calling this function.

Trong bài viết này, chúng tôi sẽ thảo luận về các cách khác nhau để có được kích thước tệp ở các định dạng có thể đọc được của con người như byte, kilobyte [KB], megabyte [MB], gigabyte [GB], v.v.

import os

def get_file_size_in_bytes[file_path]:
   """ Get size of file at given path in bytes"""
   size = os.path.getsize[file_path]
   return size


file_path = 'big_file.csv'

size = get_file_size_in_bytes[file_path]
print['File size in bytes : ', size]

Đầu ra:

File size in bytes :  166908268

Nhận kích thước của một tập tin trong Megabyte & NBSP; tức là MB

Nhận kích thước của một tệp trong Gigabyte & NBSP; tức là GB

os.stat[path, *, dir_fd=None, follow_symlinks=True]

Kiểm tra xem tệp có tồn tại trước khi kiểm tra kích thước của tệp không

Quảng cáo

Hãy để sử dụng chức năng này để có được kích thước của một tệp trong byte,

import os

def get_file_size_in_bytes_2[file_path]:
   """ Get size of file at given path in bytes"""
   # get statistics of the file
   stat_info = os.stat[file_path]
   # get size of file in bytes
   size = stat_info.st_size
   return size

file_path = 'big_file.csv'

size = get_file_size_in_bytes_2[file_path]
print['File size in bytes : ', size]

Đầu ra:

File size in bytes :  166908268

Nhận kích thước tệp tính bằng byte bằng pathlib.path.stat []. St_size

Hãy để sử dụng mô -đun Pathlib để có được kích thước của một tệp trong byte,

from pathlib import Path

def get_file_size_in_bytes_3[file_path]:
   """ Get size of file at given path in bytes"""
   # get file object
   file_obj = Path[file_path]
   # Get file size from stat object of file
   size = file_obj.stat[].st_size
   return size

file_path = 'big_file.csv'

size = get_file_size_in_bytes_3[file_path]
print['File size in bytes : ', size]

Đầu ra:

c1 = +1.189404E-010
fres = -4.07237500000000E+007;
ls = +1.943596E-005;

units = sci.Units[];
rValue, rPrefix = units.convert[c1];
print rValue;
print rPrefix;

print units.convert[fres];
print units.convert[ls];
0

Nhận kích thước tệp tính bằng byte bằng pathlib.path.stat []. St_size

Hãy để sử dụng mô -đun Pathlib để có được kích thước của một tệp trong byte,

Trong tất cả các kỹ thuật trên, chúng tôi có kích thước tệp trong byte. Điều gì sẽ xảy ra nếu chúng ta muốn kích thước tệp ở định dạng có thể đọc được của con người như, killobyte, megabyte hoặc gigabyte, v.v.
1 Megabyte == 1024*1024 Bytes
1 GigaByte == 1024*1024*1024 Bytes

Nhận kích thước tệp trong các đơn vị có thể đọc được như Kilobyte [KB], megabyte [MB] hoặc gigabyte [GB]

1 Killobyte == 1024 byte 1 megabyte == 1024*1024 byte 1 gigabyte == 1024*1024*1024 byte

Chúng tôi đã tạo ra một hàm để chuyển đổi byte thành kilobyte [kb], megabyte [MB] hoặc gigabyte [gb], tức là.

c1 = +1.189404E-010
fres = -4.07237500000000E+007;
ls = +1.943596E-005;

units = sci.Units[];
rValue, rPrefix = units.convert[c1];
print rValue;
print rPrefix;

print units.convert[fres];
print units.convert[ls];
2

c1 = +1.189404E-010
fres = -4.07237500000000E+007;
ls = +1.943596E-005;

units = sci.Units[];
rValue, rPrefix = units.convert[c1];
print rValue;
print rPrefix;

print units.convert[fres];
print units.convert[ls];
1

Hãy để tạo ra một chức năng để có được kích thước tệp trong các đơn vị kích thước khác nhau. Hàm này sử dụng nội bộ cho hàm trên để chuyển đổi byte thành đơn vị kích thước đã cho,

c1 = +1.189404E-010
fres = -4.07237500000000E+007;
ls = +1.943596E-005;

units = sci.Units[];
rValue, rPrefix = units.convert[c1];
print rValue;
print rPrefix;

print units.convert[fres];
print units.convert[ls];
3

Đầu ra:

c1 = +1.189404E-010
fres = -4.07237500000000E+007;
ls = +1.943596E-005;

units = sci.Units[];
rValue, rPrefix = units.convert[c1];
print rValue;
print rPrefix;

print units.convert[fres];
print units.convert[ls];
4

Nhận kích thước tệp tính bằng byte bằng pathlib.path.stat []. St_size

c1 = +1.189404E-010
fres = -4.07237500000000E+007;
ls = +1.943596E-005;

units = sci.Units[];
rValue, rPrefix = units.convert[c1];
print rValue;
print rPrefix;

print units.convert[fres];
print units.convert[ls];
5

Đầu ra:

c1 = +1.189404E-010
fres = -4.07237500000000E+007;
ls = +1.943596E-005;

units = sci.Units[];
rValue, rPrefix = units.convert[c1];
print rValue;
print rPrefix;

print units.convert[fres];
print units.convert[ls];
6

Nhận kích thước tệp tính bằng byte bằng pathlib.path.stat []. St_size

c1 = +1.189404E-010
fres = -4.07237500000000E+007;
ls = +1.943596E-005;

units = sci.Units[];
rValue, rPrefix = units.convert[c1];
print rValue;
print rPrefix;

print units.convert[fres];
print units.convert[ls];
7

Đầu ra:

c1 = +1.189404E-010
fres = -4.07237500000000E+007;
ls = +1.943596E-005;

units = sci.Units[];
rValue, rPrefix = units.convert[c1];
print rValue;
print rPrefix;

print units.convert[fres];
print units.convert[ls];
8

Nhận kích thước tệp tính bằng byte bằng pathlib.path.stat []. St_size

Hãy để sử dụng mô -đun Pathlib để có được kích thước của một tệp trong byte,

c1 = +1.189404E-010
fres = -4.07237500000000E+007;
ls = +1.943596E-005;

units = sci.Units[];
rValue, rPrefix = units.convert[c1];
print rValue;
print rPrefix;

print units.convert[fres];
print units.convert[ls];
9

Đầu ra:

118.9404
p
[-40.72375, 'M']
[19.435959999999998, 'u']
0

Nhận kích thước tệp tính bằng byte bằng pathlib.path.stat []. St_size

Hãy để sử dụng mô -đun Pathlib để có được kích thước của một tệp trong byte,

118.9404
p
[-40.72375, 'M']
[19.435959999999998, 'u']
1

Output:

118.9404
p
[-40.72375, 'M']
[19.435959999999998, 'u']
2

Bài Viết Liên Quan

Chủ Đề