Python資料儲存

2021-07-11 12:44:26 字數 2108 閱讀 8885

乙個計算機必須能做4件事:

接受輸入

產生輸出

儲存資料

執行計算

程式中的變數存放在記憶體中,可以快速的進行訪問,而像資料檔案這樣的資料一般很大存放在硬碟中,訪問速度很慢。下面顯示的是記憶體中的儲存情況,乙個格仔是乙個byte,發現短整型資料佔乙個byte,strings的每乙個字元佔乙個byte。利用id(my_var)可以獲取到該變數的記憶體位址。

'''

前面提到的乙個短整型資料佔乙個byte,乙個字串的每乙個字元佔乙個記憶體,這是針對低階程式語言,比如c,它與記憶體的顯示的進行互動,當可以直接申請乙個長度的byte給乙個變數,這樣對計算機系統抽象化不夠好。而python這樣的高階程式語言,它能夠快速輕鬆的表達邏輯,那麼這種方便也帶來了一些代價,就是記憶體的利用率沒有c的高,python的strings和interger都儲存為str何int類的物件。

低階程式語言有精確的記憶體管理以及在機器級別的優化。高階程式語言對於做任務來說很方便,因為他不需要知道內部優化,因為沒有記憶體的限制。對於很多任務來說,記憶體並不是最需要關心的事情,高階程式語言需要最大限度地提高開發人員的生產力。

很明顯,python的**更為簡單,而c首先**很長,其次還需要預先獲取乙個內來確保這個記憶體大小合適,而在高階語言中是不需要關心這個問題的。

import sys

my_int = 200

size_of_my_int = sys.getsizeof(my_int)

print(size_of_my_int)

int1 = 10

int2 = 100000

str1 = "hello"

str2 = "hi"

int_diff = sys.getsizeof(int1) - sys.getsizeof(int2)

print(int_diff)

str_diff = sys.getsizeof(str1) - sys.getsizeof(str2)

print(str_diff)

'''2803

'''

f = open("list.csv", "r")

list = list(csv.reader(f))

import time

import csv

before_file_read = time.clock()

f = open("list.csv", "r")

list_from_file = list(csv.reader(f))

after_file_read = time.clock()

file_time = after_file_read - before_file_read

print(file_time)

before_string_parse = time.clock()

list_from_string = "1,2,3,4,5,6,7,8,9,10".split(",")

after_string_parse = time.clock()

ram_time = after_string_parse - before_string_parse

print(ram_time)

'''0.00018099999999998673

4.700000000013027e-05

'''

python資料儲存

csv以逗號分隔,但是我發現我寫的檔案裡出現多列跟逗號沒關係,就算去除了逗號也還是一樣。usr bin env python coding utf8 time 2019 5 18 13 39 author 17976 file piplines.py description import re im...

python資料儲存

列表是一種儲存大量資料的儲存模型。列表具有索引的概念,可以通過索引操作列表中的資料。列表中的資料可以進行新增 刪除 修改 查詢等操作。建立列表 變數名 資料1,資料2,獲取列表資料 變數名 索引 修改列表資料 變數名 索引 值 元組是一種儲存固定資料的儲存模型。元組具有索引的概念,可以通過索引操作元...

python爬蟲資料儲存JSON儲存

encoding utf 8 import re import requests import json from requests.exceptions import requestexception def get open page url try 請求頭 headers 使用localhos...