Hướng dẫn how to save data in a list python - cách lưu dữ liệu vào danh sách python

Tôi không biết cách lưu dữ liệu. Ví dụ ... tôi muốn lưu trữ đầu vào của người dùng. Bất kỳ ý tưởng?

Tạo danh sách và lấy đầu vào từ người dùng và nối vào danh sách đó nhiều như bạn muốn ip = [] #Blank Danh sách TEMP = input () ip.Append (temp) #Add để liệt kê in (ip)

bạn có thể lưu nó giống như một tệp văn bản tôi có cùng một vấn đề tệp = mở ("newfile.txt", "w") file.write ("Điều này đã được ghi vào tệp") tệp.close ()

Nếu tôi hiểu bạn cũng muốn tiếp tục lưu trữ dữ liệu trong danh sách. Mã bên dưới sẽ tiếp tục yêu cầu đầu vào và lưu trữ trong danh sách cho đến khi bạn nhập giá trị true. mylist = [] tester = true while tester: a = input ('enter value:') mylist.append (a) nếu a == 'true': tester = false in (mylist)

Tôi thường thích sử dụng tùy chọn 'A' khi mở tệp, vì điều đó có nghĩa là các thứ đã được nhập được thêm vào tệp, thay vì ghi đè tất cả các dữ liệu khác trong tệp. Ví dụ: nếu bạn sẽ lưu kết quả của một bài kiểm tra hoặc trò chơi, thì việc thêm sẽ hiệu quả hơn nhiều. Lần duy nhất tôi sử dụng tùy chọn 'W' sẽ là nếu tôi sẽ cập nhật dữ liệu trong một tệp, nếu chỉ có một bộ của nó

Nếu bạn muốn lưu trữ dữ liệu dưới dạng đối tượng danh sách Python gốc bên trong một tệp, bạn có thể sử dụng Pickle Module Standard Module. Lưu trữ các đối tượng ngôn ngữ lập trình bên trong các tệp nhị phân được gọi là tuần tự hóa, quá trình đảo ngược được gọi là khử serialization. Ví dụ: Nhập Pickle some_list = [1,2,3] #Store Dữ liệu bên trong "Something_file.p" pickle.dump (some_list, open ("some_file.p", "wb")) #load dữ liệu từ "some_file.p" other_list = pickle.load (mở ("save.p", "rb")))

Sử dụng mô -đun Pickle hoặc JSON. Với JSON, việc lưu trữ dữ liệu từ điển trở nên dễ dàng hơn.

Bạn có thể tạo một vòng lặp thời gian và lưu trữ các dữ liệu này. data = [] i trong khi true: i = input ("Nhập các giá trị của dữ liệu, 'dừng' cho kết thúc:") nếu i == "stop": break data.append (i)

list = [] listlen = 7 #just for f cho i trong phạm vi (listlen): print ("input") list.append (input ()) in (list)

#Bạn có nghĩa là một cái gì đó như vậy: usr = input ("Nhập những gì bạn muốn viết:") file = open ("file.txt", "w") file.write (usr) file.close () #nếu có Cảm ơn bạn rất nhiều #nếu tôi không hiểu giải thích cho tôi thêm

bạn có thể sử dụng cho vòng lặp hoặc trong khi vòng lặp và nối thêm các giá trị này

list_name = [] user_input = RAW_INPUT ("Nói với người dùng để nhập giá trị") #i đã sử dụng raw_input () vì python 2.7 list_name.append (user_input) in (list_name)

inp = input () list1 = list (INP)

Giả sử tôi có danh sách

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
9 và nó được thay đổi trong khi chương trình của tôi đang chạy. Làm thế nào tôi có thể lưu nó vào một tệp để lần sau chương trình được chạy, tôi có thể truy cập danh sách đã thay đổi dưới dạng loại
>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
0?

Tôi đã thử:

score=[1,2,3,4,5]

with open("file.txt", 'w') as f:
    for s in score:
        f.write(str(s) + '\n')

with open("file.txt", 'r') as f:
    score = [line.rstrip('\n') for line in f]


print(score)

Nhưng điều này dẫn đến các yếu tố trong danh sách là các chuỗi không phải là số nguyên.

Karl Knechtel

59.5K10 Huy hiệu vàng86 Huy hiệu bạc133 Huy hiệu Đồng10 gold badges86 silver badges133 bronze badges

Đã hỏi ngày 2 tháng 1 năm 2015 lúc 16:47Jan 2, 2015 at 16:47

Hướng dẫn how to save data in a list python - cách lưu dữ liệu vào danh sách python

OceanSceoseCeanescesOceanescence

1.7882 Huy hiệu vàng17 Huy hiệu bạc27 Huy hiệu đồng2 gold badges17 silver badges27 bronze badges

2

Bạn có thể sử dụng mô -đun

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
1 cho điều đó. Mô -đun này có hai phương pháp,

  1. Pickling (Dump): Chuyển đổi các đối tượng Python thành một biểu diễn chuỗi.: Convert Python objects into a string representation.
  2. Khởi động (tải): Lấy các đối tượng gốc từ biểu diễn chuỗi được lưu trữ.: Retrieving original objects from a stored string representation.

https://docs.python.org/3.3/library/pickle.html

Code::

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]

Cũng là json

  1. bãi rác/bãi rác: sê -ri
  2. Tải/tải: Deserialize

https://docs.python.org/3/library/json.html

Code::

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]

Đã trả lời ngày 2 tháng 1 năm 2015 lúc 16:49Jan 2, 2015 at 16:49

Vivek Sablevivek SableVivek Sable

9.6023 Huy hiệu vàng36 Huy hiệu bạc52 Huy hiệu Đồng3 gold badges36 silver badges52 bronze badges

3

Tôi quyết định tôi không muốn sử dụng dưa chua vì tôi muốn có thể mở tệp văn bản và thay đổi nội dung của nó một cách dễ dàng trong quá trình thử nghiệm. Do đó, tôi đã làm điều này:

score = [1,2,3,4,5]

with open("file.txt", "w") as f:
    for s in score:
        f.write(str(s) +"\n")
score = []
with open("file.txt", "r") as f:
  for line in f:
    score.append(int(line.strip()))

Vì vậy, các mục trong tệp được đọc dưới dạng số nguyên, mặc dù được lưu trữ vào tệp dưới dạng chuỗi.

Đã trả lời ngày 3 tháng 2 năm 2015 lúc 17:34Feb 3, 2015 at 17:34

Hướng dẫn how to save data in a list python - cách lưu dữ liệu vào danh sách python

OceanSceoseCeanescesOceanescence

1.7882 Huy hiệu vàng17 Huy hiệu bạc27 Huy hiệu đồng2 gold badges17 silver badges27 bronze badges

2

Bạn có thể sử dụng mô -đun

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
1 cho điều đó. Mô -đun này có hai phương pháp,

import json

score=[1,2,3,4,5]

with open("file.json", 'w') as f:
    # indent=2 is not needed but makes the file human-readable 
    # if the data is nested
    json.dump(score, f, indent=2) 

with open("file.json", 'r') as f:
    score = json.load(f)

print(score)

Advantages::

  1. Pickling (Dump): Chuyển đổi các đối tượng Python thành một biểu diễn chuỗi.
  2. Khởi động (tải): Lấy các đối tượng gốc từ biểu diễn chuỗi được lưu trữ.
  3. Cũng là json

Disadvantages::

  1. bãi rác/bãi rác: sê -ri
  2. Tải/tải: Deserialize

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
1 vs
>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
2, tôi nên sử dụng cái nào ?:
:

  • Nếu bạn muốn lưu trữ một cái gì đó mà bạn biết rằng bạn sẽ chỉ sử dụng trong bối cảnh chương trình Python, hãy sử dụng
    >>> import json
    >>> with open("test", "w") as fp:
    ...     json.dump(l, fp)
    ...
    >>> with open("test", "r") as fp:
    ...     b = json.load(fp)
    ...
    >>> b
    [1, 2, 3, 4]
    
    1
  • Nếu bạn cần lưu dữ liệu không thể nối tiếp theo mặc định (tức là các đối tượng), hãy tự lưu lại rắc rối và sử dụng
    >>> import json
    >>> with open("test", "w") as fp:
    ...     json.dump(l, fp)
    ...
    >>> with open("test", "r") as fp:
    ...     b = json.load(fp)
    ...
    >>> b
    [1, 2, 3, 4]
    
    1
  • Nếu bạn cần một giải pháp bất khả tri nền tảng, hãy sử dụng
    >>> import json
    >>> with open("test", "w") as fp:
    ...     json.dump(l, fp)
    ...
    >>> with open("test", "r") as fp:
    ...     b = json.load(fp)
    ...
    >>> b
    [1, 2, 3, 4]
    
    2
  • Nếu bạn cần có khả năng kiểm tra và chỉnh sửa dữ liệu trực tiếp, hãy sử dụng
    >>> import json
    >>> with open("test", "w") as fp:
    ...     json.dump(l, fp)
    ...
    >>> with open("test", "r") as fp:
    ...     b = json.load(fp)
    ...
    >>> b
    [1, 2, 3, 4]
    
    2
  • Nếu bạn cần một cái gì đó mạnh mẽ và lâu dài, hãy sử dụng
    >>> import json
    >>> with open("test", "w") as fp:
    ...     json.dump(l, fp)
    ...
    >>> with open("test", "r") as fp:
    ...     b = json.load(fp)
    ...
    >>> b
    [1, 2, 3, 4]
    
    2 (
    >>> import json
    >>> with open("test", "w") as fp:
    ...     json.dump(l, fp)
    ...
    >>> with open("test", "r") as fp:
    ...     b = json.load(fp)
    ...
    >>> b
    [1, 2, 3, 4]
    
    1 sẽ không hoạt động chính xác nếu bạn thay đổi vị trí của các lớp/tệp hoặc thực hiện các thay đổi phá vỡ mã)

Đã trả lời ngày 3 tháng 1 năm 2020 lúc 22:29Jan 3, 2020 at 22:29

Hướng dẫn how to save data in a list python - cách lưu dữ liệu vào danh sách python

Nếu bạn không muốn sử dụng Pickle, bạn có thể lưu trữ danh sách dưới dạng văn bản và sau đó đánh giá nó:

data = [0,1,2,3,4,5]
with open("test.txt", "w") as file:
    file.write(str(data))

with open("test.txt", "r") as file:
    data2 = eval(file.readline())

# Let's see if data and types are same.
print(data, type(data), type(data[0]))
print(data2, type(data2), type(data2[0]))

[0, 1, 2, 3, 4, 5] Lớp 'danh sách' lớp 'int'

[0, 1, 2, 3, 4, 5] Lớp 'danh sách' lớp 'int'

Đã trả lời ngày 10 tháng 3 năm 2018 lúc 13:28Mar 10, 2018 at 13:28

Hướng dẫn how to save data in a list python - cách lưu dữ liệu vào danh sách python

2

Nếu bạn muốn bạn có thể sử dụng chức năng lưu của Numpy để lưu danh sách dưới dạng tệp. Nói rằng bạn có hai danh sách

sampleList1=['z','x','a','b']
sampleList2=[[1,2],[4,5]]

Đây là chức năng lưu danh sách dưới dạng tệp, hãy nhớ rằng bạn cần giữ phần mở rộng .npy

def saveList(myList,filename):
    # the filename should mention the extension 'npy'
    np.save(filename,myList)
    print("Saved successfully!")

Và đây là chức năng tải tệp vào danh sách

def loadList(filename):
    # the filename should mention the extension 'npy'
    tempNumpyArray=np.load(filename)
    return tempNumpyArray.tolist()

một ví dụ làm việc

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
0

Đã trả lời ngày 20 tháng 6 năm 2019 lúc 17:33Jun 20, 2019 at 17:33

Hướng dẫn how to save data in a list python - cách lưu dữ liệu vào danh sách python

Manu Gondmanu GondManu Gond

1642 Huy hiệu bạc7 Huy hiệu đồng2 silver badges7 bronze badges

>>> import json
>>> with open("test", "w") as fp:
...     json.dump(l, fp)
...
>>> with open("test", "r") as fp:
...     b = json.load(fp)
...
>>> b
[1, 2, 3, 4]
1 và các gói tuần tự hóa khác hoạt động. Vì vậy, viết nó vào một tệp
score = [1,2,3,4,5]

with open("file.txt", "w") as f:
    for s in score:
        f.write(str(s) +"\n")
7 mà sau đó bạn có thể nhập.

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
1

Đã trả lời ngày 2 tháng 1 năm 2015 lúc 17:12Jan 2, 2015 at 17:12

Mike McKernsmike McKernsMike McKerns

32.2k8 Huy hiệu vàng114 Huy hiệu bạc138 Huy hiệu đồng8 gold badges114 silver badges138 bronze badges

4

Điều tôi không thích với nhiều câu trả lời là nó thực hiện quá nhiều cuộc gọi hệ thống bằng cách ghi vào dòng tệp trên mỗi dòng. IMHO tốt nhất là tham gia danh sách với '\ n' (trả về dòng) và sau đó chỉ viết nó một lần vào tệp:

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
2

Và sau đó để mở nó và nhận lại danh sách của bạn:

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
3

Đã trả lời ngày 3 tháng 1 năm 2020 lúc 22:04Jan 3, 2020 at 22:04

Hướng dẫn how to save data in a list python - cách lưu dữ liệu vào danh sách python

Antonin Gavrelantonin GavrelAntonin GAVREL

8.7694 Huy hiệu vàng49 Huy hiệu bạc69 Huy hiệu đồng4 gold badges49 silver badges69 bronze badges

Tôi đang sử dụng gấu trúc.

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
4

Sử dụng điều này nếu bạn đang nhập gấu trúc cho các tính toán khác.

Đã trả lời ngày 24 tháng 12 năm 2018 lúc 9:16Dec 24, 2018 at 9:16

Hướng dẫn how to save data in a list python - cách lưu dữ liệu vào danh sách python

1

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
5

Đã trả lời ngày 24 tháng 7 năm 2020 lúc 6:56Jul 24, 2020 at 6:56

Hướng dẫn how to save data in a list python - cách lưu dữ liệu vào danh sách python

Bitbangbitbangbitbang

1.56512 Huy hiệu bạc18 Huy hiệu đồng12 silver badges18 bronze badges

Tôi có vấn đề tương tự khi tôi cần đọc danh sách được lưu dưới dạng tệp văn bản. Danh sách có nhiều lớp nên việc sử dụng Split sẽ không giúp được gì. Ví dụ:

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
6

Vì vậy, những gì tôi đã làm, tôi đã thay đổi danh sách.txt thành list.py và sau đó nhập danh sách từ tệp python. Ví dụ:

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
7

Then:

>>> import pickle
>>> l = [1,2,3,4]
>>> with open("test", "wb") as fp:   #Pickling
...   pickle.dump(l, fp)
... 
>>> with open("test", "rb") as fp:   # Unpickling
...   b = pickle.load(fp)
... 
>>> b
[1, 2, 3, 4]
8

Đã trả lời ngày 20 tháng 10 năm 2021 lúc 2:46Oct 20, 2021 at 2:46

Hướng dẫn how to save data in a list python - cách lưu dữ liệu vào danh sách python