Tôi có một cơ sở dữ liệu:tách một chuỗi dài biến thành nhiều bộ phận trong python
Như bạn có thể thấy trong cột 'desc', các văn bản có độ dài biến (có nghĩa là không có hai chuỗi tôi kéo từ cơ sở dữ liệu này sẽ có cùng độ dài). Cuối cùng tôi sẽ thêm nhiều mục vào cơ sở dữ liệu này, nhưng đây là những gì tôi đang thử nghiệm và bắt đầu với tại thời điểm này.
Ngay bây giờ, tôi có mã python sau để lấy các khối của chuỗi và hiển thị chúng:
cmd = input(Enter command:)
sql = "SELECT cmd,`desc` FROM table WHERE cmd = '"+ cmd +"'"
cursor.execute(sql)
result = cursor.fetchall()
for row in result:
print("Command: "+ row[0] +":\n")
print("Description: "+ row[1][:40] +"\n")
if (len(row[1]) > 40):
print(row[1][40:85])
if (len(row[1]) > 85):
print(row[1][85:130])
if (len(row[1]) > 130):
print(row[1][130:165])
if (len(row[1]) > 165):
print(row[1][165:])
Việc chia tách ở đây làm việc đến mức, ví dụ:
Command: gần :
Mô tả: Lệnh này sẽ tạo một 'đóng' nhưngto
n trong cửa sổ thư cho lời gọi char
acter. Nếu không có cửa sổ nào hiện trên màn hình, t
việc thực thi tập lệnh sẽ kết thúc.
Như bạn có thể thấy với ví dụ ở trên đầu ra, phần tách làm cho một số ký tự bị cắt ngang ở giữa. Với thực tế rằng các chuỗi có thể có độ dài bất kỳ giữa 20 ký tự và lên đến 190, và tôi muốn chia chuỗi thành các khối nói ... 8 từ mỗi vì không gian hạn chế, làm thế nào tôi sẽ đi về việc này?
sử dụng thay thế tham số thay vì tạo chuỗi sql bằng cách thủ công, ví dụ: 'cursor.execute ('select * from commands where cmd =?', (Cmd,))'. Bạn không cần phải gọi 'cursor.fetchall()' bạn có thể lặp qua nó trực tiếp: 'cho hàng trong con trỏ: ...' – jfs