Hướng dẫn how do you align text in a column in python? - làm thế nào để bạn căn chỉnh văn bản trong một cột trong python?

Tôi có một tệp văn bản đơn giản chứa dữ liệu đăng nhập người dùng:

dtrapani  HCPD-EPD-3687  Mon  05/13/2013    9:47:01.72
dlibby  HCPD-COS-4611  Mon  05/13/2013    9:49:34.55
lmurdoch  HCPD-SDDEB-3736  Mon  05/13/2013    9:50:38.48
lpatrick  HCPD-WIN7-015  Mon  05/13/2013    9:57:44.57
mlay  HCPD-WAR-3744  Mon  05/13/2013  10:00:07.94
eyoung  HCPD-NLCC-0645  Mon  05/13/2013  10:03:01.83

Tôi đang cố gắng in dữ liệu trong các cột liên kết trái và phải:

dtrapani  HCPD-EPD-3687    Mon  05/13/2013    9:47:01.72
dlibby    HCPD-COS-4611    Mon  05/13/2013    9:49:34.55
lmurdoch  HCPD-SDDEB-3736  Mon  05/13/2013    9:50:38.48
lpatrick  HCPD-WIN7-015    Mon  05/13/2013    9:57:44.57
mlay      HCPD-WAR-3744    Mon  05/13/2013   10:00:07.94
eyoung    HCPD-NLCC-0645   Mon  05/13/2013   10:03:01.83

Tôi có thể làm cái này như thế nào?

Đây là mã tôi có cho đến nay:

with open(r'C:\path\to\logons.txt', 'r') as f:
    for line in f:
        data = line.strip()
        print(data)

Hướng dẫn how do you align text in a column in python? - làm thế nào để bạn căn chỉnh văn bản trong một cột trong python?

tdy

30.3k11 Huy hiệu vàng59 Huy hiệu bạc59 Huy hiệu Đồng11 gold badges59 silver badges59 bronze badges

Khi được hỏi ngày 28 tháng 5 năm 2013 lúc 16:09May 28, 2013 at 16:09

Tôi sẽ đi cho định dạng in (er) mới với cái này (giả sử các trường của bạn là nhất quán). Tuyên bố in/định dạng khá dễ sử dụng và có thể được tìm thấy ở đây. Vì dữ liệu của bạn có thể được coi là một danh sách, bạn có thể thực hiện một cuộc gọi duy nhất để định dạng và cung cấp dữ liệu định dạng chính xác, bạn sẽ nhận được đầu ra của mình. Điều này có kiểm soát hạt mịn hơn một chút so với Ljust hoặc Rjust nhưng có nhược điểm mà bạn cần biết rằng dữ liệu của bạn đến là phù hợp.

with open(r'C:\path\to\logons.txt', 'r') as f:
    for line in f:
        data = line.split()    # Splits on whitespace
        print '{0[0]:<15}{0[1]:<15}{0[2]:<5}{0[3]:<15}{0[4]:>15}'.format(data)

Đã trả lời ngày 28 tháng 5 năm 2013 lúc 17:21May 28, 2013 at 17:21

Hướng dẫn how do you align text in a column in python? - làm thế nào để bạn căn chỉnh văn bản trong một cột trong python?

Jeff Langemeierjeff LangemeierJeff Langemeier

9881 Huy hiệu vàng11 Huy hiệu bạc21 Huy hiệu đồng1 gold badge11 silver badges21 bronze badges

0

str.ljust(width, [fillchar=" "]) (http://docs.python.org/2/l Library/stdtypes.html#str.ljust) có vẻ như là những gì bạn đang theo đuổi. Còn lại biện minh cho mỗi trường khi in đến chiều dài tối đa + một chút.

Để trường cuối cùng phù hợp với ví dụ của bạn, bạn sẽ muốn biện minh cho nó thay vì sử dụng rjust.

Đã trả lời ngày 28 tháng 5 năm 2013 lúc 16:21May 28, 2013 at 16:21

SysyphussyphusSysyphus

1.0715 huy hiệu bạc10 Huy hiệu đồng5 silver badges10 bronze badges

5

Như Python 3.6+

Sử dụng cú pháp F-String hiện đại:f-string syntax:

with open(r'logons.txt', 'r') as f:
    for line in f:
        s = line.split()
        print(f'{s[0]:<10}{s[1]:<17}{s[2]:<5}{s[3]:<12}{s[4]:>12}')
        #     ^       ^^^       ^^^       ^^       ^^^       ^^^
        # f-string  left-10   left-17   left-5   left-12   right-12
  • nhanh hơn nhiều so với str.format cũ hơn nhiều
  • tuân theo các thông số kỹ thuật định dạng tương tự

Output:

dtrapani  HCPD-EPD-3687    Mon  05/13/2013    9:47:01.72
dlibby    HCPD-COS-4611    Mon  05/13/2013    9:49:34.55
lmurdoch  HCPD-SDDEB-3736  Mon  05/13/2013    9:50:38.48
lpatrick  HCPD-WIN7-015    Mon  05/13/2013    9:57:44.57
mlay      HCPD-WAR-3744    Mon  05/13/2013   10:00:07.94
eyoung    HCPD-NLCC-0645   Mon  05/13/2013   10:03:01.83

Đã trả lời ngày 5 tháng 12 năm 2021 lúc 23:10Dec 5, 2021 at 23:10

tdytdytdy

30.3k11 Huy hiệu vàng59 Huy hiệu bạc59 Huy hiệu Đồng11 gold badges59 silver badges59 bronze badges

#!/usr/bin/env python
import sys
inputfile = '''dtrapani HCPD-EPD-3687 Mon 05/13/2013 9:47:01.72
dlibby HCPD-COS-4611 Mon 05/13/2013 9:49:34.55
lmurdoch HCPD-SDDEB-3736 Mon 05/13/2013 9:50:38.48
lpatrick HCPD-WIN7-015 Mon 05/13/2013 9:57:44.57
mlay HCPD-WAR-3744 Mon 05/13/2013 10:00:07.94
eyoung HCPD-NLCC-0645 Mon 05/13/2013 10:03:01.83'''.split('\n')
output = sys.stdout
lengths = [10,17,5,14,0]
for line in inputfile:
    line = line.split()
    for field, fieldlength in zip(line,lengths):
        output.write(field.ljust(fieldlength))
    output.write('\n')

Khi được hỏi ngày 28 tháng 5 năm 2013 lúc 16:09May 28, 2013 at 17:14

Tôi sẽ đi cho định dạng in (er) mới với cái này (giả sử các trường của bạn là nhất quán). Tuyên bố in/định dạng khá dễ sử dụng và có thể được tìm thấy ở đây. Vì dữ liệu của bạn có thể được coi là một danh sách, bạn có thể thực hiện một cuộc gọi duy nhất để định dạng và cung cấp dữ liệu định dạng chính xác, bạn sẽ nhận được đầu ra của mình. Điều này có kiểm soát hạt mịn hơn một chút so với Ljust hoặc Rjust nhưng có nhược điểm mà bạn cần biết rằng dữ liệu của bạn đến là phù hợp.Hal Canary

Đã trả lời ngày 28 tháng 5 năm 2013 lúc 17:2116 silver badges17 bronze badges

Làm thế nào để bạn căn chỉnh văn bản trong Python?

Trong Python, một chuỗi văn bản có thể được căn chỉnh bên trái, phải và trung tâm ...
.ljust (chiều rộng) Phương thức này trả về một chuỗi được căn chỉnh bên trái có chiều rộng.....
.Center (chiều rộng) Phương thức này trả về một chuỗi trung tâm có chiều rộng.....
.

Làm thế nào để bạn sắp xếp các cột trong một khung dữ liệu trong Python?

Để căn chỉnh các cột sang trái trong Pandas DataFrame, chúng tôi sử dụng hàm dataFrame.style.set_properies ().use the dataframe. style. set_properties() function.

Làm thế nào để bạn sắp xếp các yếu tố trong Python?

Sử dụng cú pháp F-String hiện đại:using the < , > , or ^ symbols to specify left align, right align, or centering, respectively. Then you follow the those symbols with a character width you desire.

Làm thế nào để bạn sắp xếp các cột?

Trên tab Home, nhấp vào đoạn văn, sau đó nhấp vào ALIGN. Chọn căn chỉnh với tùy chọn và sau đó chọn thẻ đoạn văn liên quan đến cột một đoạn. Select the Align with option and then select the paragraph tag pertaining to the column one paragraph.