Sử dụng tệp văn bản làm cơ sở dữ liệu python

Có thể lưu dữ liệu vào đĩa và truy xuất nó tương đương với việc có thể chuyển đổi dữ liệu này thành chuỗi và sau đó trở lại dữ liệu. Thật vậy, bạn luôn có thể định nghĩa

def save[data, filename]:
    with open[filename, 'w'] as fh:
        fh.write[string_from_data[data]]

def retrieve[filename]:
    with open[filename] as fh:
        return data_from_string[fh.read[]]

Điều đó có nghĩa là bạn chỉ cần xác định

def string_from_data[data]:
    return '\n'.join[data]

def data_from_string[s]:
    return s.split['\n']
7 và
def string_from_data[data]:
    return '\n'.join[data]

def data_from_string[s]:
    return s.split['\n']
8. Điều này được gọi là tuần tự hóa và hủy tuần tự hóa dữ liệu. Có rất nhiều cách để làm điều đó

Ví dụ: giả sử rằng dữ liệu của bạn là một danh sách các tên và các tên đó không chứa ký tự xuống dòng, người ta có thể định nghĩa

def string_from_data[data]:
    return '\n'.join[data]

def data_from_string[s]:
    return s.split['\n']

Bây giờ với những định nghĩa này, bạn có thể viết trong chương trình

import os
FILENAME = 'mylist.txt'

if os.path.isfile[FILENAME]:
    mylist = retrieve[FILENAME]
else:
    mylist = []

# .. work with mylist

save[mylist, FILENAME]

0 0

Đăng lại

vegaseat 1.735 Kẻ đạo đức giả của DaniWeb Đồng nghiệp trong nhóm

7 năm trước

Dưa chua mô-đun được thực hiện cho việc này

''' pickle_list101.py
use module pickle to dump and load a list object
use binary file modes "wb" and "rb" to make it work with
Python2 and Python3
'''

import pickle

mylist = [
'Frank',
'Paul',
'Mary']

fname = "list101.pkl"
# pickle dump the list object
with open[fname, "wb"] as fout:
    # default protocol is zero
    # -1 gives highest prototcol and smallest data file size
    pickle.dump[mylist, fout, protocol=-1]

# pickle load the list object back in [senses protocol]
with open[fname, "rb"] as fin:
    mylist2 = pickle.load[fin]

# visual compare
print[mylist]
print['-'*30]
print[mylist2]

''' result ...
['Frank', 'Paul', 'Mary']
------------------------------
['Frank', 'Paul', 'Mary']
'''

0 0

Đăng lại

Niloofar24 15 Đăng Whiz

7 năm trước

Chà, tôi nên lưu những mã này ở đâu? . văn bản?

0 0

Đăng lại

vegaseat 1.735 Kẻ đạo đức giả của DaniWeb Đồng nghiệp trong nhóm

7 năm trước

Bạn có thể lưu trữ nó trong bất kỳ thư mục nào bạn muốn, miễn là bạn cung cấp cho nó tên đường dẫn đầy đủ. Để thuận tiện, tôi sẽ giữ mã. py và tệp dữ liệu trong một thư mục

0 0

Đăng lại

snippsat 661 Áp phích chính

7 năm trước

Một thử nghiệm với tập dữ liệu, cơ sở dữ liệu đơn giản nhất có thể.
Vì vậy, ở đây tôi có một danh sách người chơi mà tôi lưu trữ trong cơ sở dữ liệu Sqlite [đi kèm với Python].

import dataset

player_lst = [
    {'name': 'Tom', 'score': 250},
    {'name': 'Kent', 'score': 150},
    {'name': 'Paul', 'score': 500}
    ]

db = dataset.connect['sqlite:///mydatabase.db']
table = db['Score_table']
for item in player_lst:
    table.insert[item]

Kiểm tra nó, bằng cách lấy ra một số dữ liệu

>>> users = db['Score_table'].all[]
>>> for user in db['Score_table']:
..     print user
..     
OrderedDict[[[u'id', 1], [u'score', 250], [u'name', u'Tom']]]
OrderedDict[[[u'id', 2], [u'score', 150], [u'name', u'Kent']]]
OrderedDict[[[u'id', 3], [u'score', 500], [u'name', u'Paul']]]

>>> table.find_one[name='Tom']
OrderedDict[[[u'id', 1], [u'score', 250], [u'name', u'Tom']]]
>>> table.find_one[name='Tom']['score']
250

Nó cũng có tất cả sức mạnh của các truy vấn SQL nếu cần

________số 8

1 0

Đăng lại

Đã chỉnh sửa 7 năm trước bởi snippsat

Gribouillis đã nhận xét. liên kết thú vị +14

Gribouillis 1.391 Trình thám hiểm lập trình Đồng nghiệp nhóm

7 năm trước

@snippsat Tôi thích khái niệm này, mặc dù dựa trên sqlalchemy có thể có chi phí hiệu năng cho tập dữ liệu

Điều tuyệt vời nhất trong điều này có thể là lệnh datafreeze mà nó chứa và khái niệm về tệp đóng băng yaml giúp mô tả việc trích xuất dữ liệu có thể sử dụng lại từ một cơ sở dữ liệu nhất định

Với một chút công việc nữa, các tệp đóng băng có thể được sử dụng để xuất các tệp dưa chua> thay vì json hoặc csv, khiến chúng trở nên đơn giản để tải từ python

Bạn có thể sử dụng tệp TXT làm cơ sở dữ liệu không?

Có, bạn có thể sử dụng. tệp txt dưới dạng cơ sở dữ liệu nhưng về lâu dài, bạn nên tự làm cho việc này dễ dàng hơn nhiều và tìm hiểu mySQL trong vài giờ để bạn có thể làm được .

Bạn có thể sử dụng tệp văn bản bằng Python không?

Python cung cấp các chức năng sẵn có để tạo, viết và đọc tệp. Có hai loại tệp có thể được xử lý trong python, tệp văn bản thông thường và tệp nhị phân [được viết bằng ngôn ngữ nhị phân, 0 và 1].

Làm thế nào để Python lưu trữ dữ liệu trong một tệp văn bản?

Để ghi vào tệp văn bản bằng Python, bạn làm theo các bước sau. .
Đầu tiên, mở tệp văn bản để ghi [hoặc nối thêm] bằng hàm open[]
Thứ hai, ghi vào tệp văn bản bằng phương thức write[] hoặc writelines[]
Thứ ba, đóng tệp bằng phương thức close[]

Python có thể được sử dụng làm cơ sở dữ liệu không?

Khoa học dữ liệu thực tế sử dụng Python . Python hỗ trợ nhiều cơ sở dữ liệu khác nhau như SQLite, MySQL, Oracle, Sybase, PostgreSQL, v.v. . Python cũng hỗ trợ Ngôn ngữ Định nghĩa Dữ liệu [DDL], Ngôn ngữ Thao tác Dữ liệu [DML] và Câu lệnh Truy vấn Dữ liệu.

Chủ Đề