Tôi chỉ muốn đọc cột thứ tư và thứ năm của tệp văn bản này
sample.txt
2012-01-01 09:00 San Jose Men's Clothing 214.05 Amex
2012-01-01 09:00 Fort Worth Women's Clothing 153.57 Visa
2012-01-01 09:00 San Diego Music 66.08 Cash
Tôi có thể làm điều này, nhưng định dạng của đầu ra không phải là điều tôi muốn.
đầu ra
Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
Kết quả mong muốn
Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
Đây là mã của tôi [tôi đã sử dụng một số định dạng nhưng nó vẫn không cho tôi đầu ra mong muốn]:
for line in open["sample.txt"]:
strsales=line.split[][-2]
item=line.split['\t'][3]
itemsales=item+"{0:>33}".format[strsales]
print[itemsales]
wjandrea
25.1k8 Huy hiệu vàng53 Huy hiệu bạc74 Huy hiệu đồng8 gold badges53 silver badges74 bronze badges
Hỏi ngày 21 tháng 1 năm 2018 lúc 9:50Jan 21, 2018 at 9:50
Đường thẳng này:
itemsales=item+"{0:>33}".format[strsales]
đang đệm số lượng đến 33 vị trí. Nhưng độ dài của
Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
2 là khác nhau và điều đó khiến cho sự liên kết của bạn bị tắt. Nhìn kỹ và bạn sẽ thấy rằng sự không đồng đều trong hàng 1 và hàng 2 là 2 vị trí và đó chính xác là sự khác biệt về độ dài giữa Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
3 và Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
4. Bạn cần phải chuyển cả hai biến đến một số vị trí không đổi. Thử cái nàyitemsales = "{0:18}".format[item,strsales]
Đã trả lời ngày 21 tháng 1 năm 2018 lúc 12:27Jan 21, 2018 at 12:27
BoargulesboargulesBoarGules
Huy hiệu vàng 16K22 gold badges29 silver badges43 bronze badges
0
Trong bài đăng cuối cùng, chúng tôi đã học được cách kiểm soát độ chính xác của số chúng tôi in cũng như số lượng không gian mà các số này chiếm. Điều cuối cùng chúng ta cần học để xuất ra các bảng dữ liệu đẹp là cách căn chỉnh văn bản và số khi chúng ta sử dụng
Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
5.Căn chỉnh văn bản và số với .format []
Trước đây chúng tôi đã học cách chỉ định số lượng khoảng trống được phân bổ cho các đầu vào chúng tôi cung cấp cho
Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
5. Bây giờ chúng ta sẽ thấy rằng chúng ta có thể nói với Python về cách chúng ta muốn sắp xếp văn bản hoặc số của chúng ta trong các không gian này. Chúng tôi có thể điều chỉnh trái [Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
7], điều chỉnh phải [Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
8] và trung tâm [Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
9] các giá trị của chúng tôi. Đây là một ví dụ ngắn gọn:# Example 1 print['L {:20} R'.format['x']]
Đầu ra của các ví dụ này là:
Tuyệt đấy. Chúng tôi đã nói với Python để lại 20 không gian cho văn bản chúng tôi muốn nhập và tùy thuộc vào biểu tượng chúng tôi đã chỉ định, chúng tôi có thể thay đổi sự biện minh của văn bản của chúng tôi.
Bạn thậm chí có thể chỉ định ký tự bạn muốn sử dụng thay vì khoảng trống.
print ['{:=20}'.format['hello']]
Đầu ra của các ví dụ này là:
hello=============== _______hello________ ...............hello
Như bạn có thể thấy,
Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
5 có rất nhiều tùy chọn. Truy cập tài liệu chuỗi hoặc trang web hữu ích này nếu bạn muốn tìm hiểu thêm.Để tất cả chúng cùng nhau
Khi làm việc với dữ liệu, chúng tôi thường muốn có một cái nhìn nhanh để đảm bảo không có sai lầm và để xem liệu có bất kỳ mẫu nào có mặt không. Một cách để làm điều này là vẽ dữ liệu của bạn. Tuy nhiên, một số loại dữ liệu có xu hướng được trình bày tốt hơn trong một bảng có cấu trúc độc đáo.
Trong ví dụ này, chúng tôi sẽ làm việc với một số dữ liệu trang điểm:
data = [['NAME', 'AGE', 'HANDEDNESS', 'SCORE [%]'], ['Martin', 38, 'L', 54.123], ['Marty', 33, 'L', 32.438], ['Martine', 25, 'R', 71.128], ['Martyn', 59, 'R', 50.472], ['Mart', 23, 'L', 2.438], ['Martyne', 15, 'R', 71.128], ['Marlyn', 101, 'R', 0.472], ['Marti', 2, 'L', 55.438], ['Mardi', 9, 'R', 81.128], ['Martyne', 49, 'R', 24.472], ['Marteen', 91, 'L', 1.128]]
Lưu ý rằng hàng dữ liệu đầu tiên [
Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
1] chứa các nhãn cột. Các hàng khác chứa dữ liệu cho từng đối tượng.Như bạn có thể nghi ngờ, chạy
Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
2 không dẫn đến đầu ra đẹp [hãy thử để xem cho chính mình!]. Một giải pháp tốt hơn là áp dụng những gì chúng ta đã học để tạo ra một bảng đẹp. Đây là mã:Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
0Đầu ra của mã này trông như thế này:
Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
1Về mặt mã, trước tiên chúng tôi tạo một biến gọi là
Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
3 chứa 40 dấu gạch ngang.Mã sau đó đã lặp qua từng trong số 12 mục trong biến
Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
4 của chúng tôi. Nếu chúng tôi đang xử lý mục đầu tiên của mình [tức là, Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
5], chúng tôi nói với Python rằng chúng tôi muốn in một dòng dấu gạch ngang, sau đó in các tiêu đề của chúng tôi, theo sau là một dòng dấu gạch ngang khác. Lưu ý cách chúng tôi chỉ định số lượng không gian chúng tôi muốn cho mỗi tiêu đề cũng như sự liên kết của văn bản.Đối với tất cả các mục khác trong biến
Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
4 của chúng tôi, chúng tôi in văn bản và giá trị bằng cùng một số không gian được sử dụng cho tiêu đề và chỉ định xem chúng tôi muốn in số nguyên [Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
7], một chuỗi [Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
8] hoặc số điểm nổi [Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
9 ]. Lưu ý rằng vì for line in open["sample.txt"]:
strsales=line.split[][-2]
item=line.split['\t'][3]
itemsales=item+"{0:>33}".format[strsales]
print[itemsales]
0 là một từ dài, nên có vẻ tốt hơn để tập trung văn bản được in bên dưới nó. Mặt khác, căn chỉnh giống như đối với hàng tiêu đề.Hãy chắc chắn rằng bạn hiểu cách thức hoạt động của mã này. Để thực sự củng cố việc học của bạn, hãy thử thay đổi mọi thứ trong các câu lệnh in và xem liệu nó có tạo ra kết quả mong đợi không.
Sự kết luận
Hy vọng rằng bạn thích các hướng dẫn này trên phương thức chuỗi
Men's Clothing 214.05
Women's Clothing 153.57
Music 66.08
5 và hàm for line in open["sample.txt"]:
strsales=line.split[][-2]
item=line.split['\t'][3]
itemsales=item+"{0:>33}".format[strsales]
print[itemsales]
2. Bây giờ bạn không còn lý do nào cho các câu lệnh in xấu xí và không chính xác!Và nếu bạn muốn các câu lệnh in Python dễ đọc hơn, hãy xem xét sử dụng F-Strings. Như tôi thảo luận trong bài viết này, chúng là cách hiện đại để in văn bản bằng Python.