Hướng dẫn python split lines and trim - python chia dòng và cắt

Tôi đã cố gắng cắt giảm khoảng trắng trong Python bằng cách sử dụng

a
    b
3 như thế này, nhưng nó chỉ hoạt động trên dòng đầu tiên:

Input:

   a
    b

Output:

a
    b

Làm thế nào để tôi lấy nó để cắt khoảng trắng từ nhiều dòng? Đây là mã của tôi:

Code:

import sys

if __name__ == "__main__":
    text_file = open("input.txt", "r")
    s = text_file.read()
    s = s.strip()
    text_file.close()
    with open("Output.txt", "w") as text_file:
        text_file.write(s)

Đã hỏi ngày 4 tháng 7 năm 2015 lúc 7:41Jul 4, 2015 at 7:41

Hướng dẫn python split lines and trim - python chia dòng và cắt

Chia các dòng, dải mỗi dòng, sau đó tham gia lại:

s = text_file.read()
s = '\n'.join([line.strip() for line in s.splitlines()])

Điều này sử dụng phương thức

a
    b
4, cùng với phương thức
a
    b
5 để kết hợp các dòng lại với nhau với các dòng mới ở giữa.

Tốt hơn hết, hãy đọc từng dòng theo từng dòng, xử lý và viết ra trong một lần; Bằng cách đó, bạn cần ít bộ nhớ hơn cho toàn bộ quá trình:

with open("input.txt", "r") as infile, open("Output.txt", "w") as outfile:
    for line in infile:
        outfile.write(line.strip() + '\n')

Đã trả lời ngày 4 tháng 7 năm 2015 lúc 7:43Jul 4, 2015 at 7:43

Martijn Pieters ♦ Martijn PietersMartijn Pieters

993K277 Huy hiệu vàng3914 Huy hiệu bạc3258 Huy hiệu đồng277 gold badges3914 silver badges3258 bronze badges

1

Vấn đề xảy ra do

a
    b
6 chỉ tước bỏ các không gian trắng và hàng đầu, nó không tước khoảng trắng ở giữa.

Cho đầu vào -

   a
    b

Và làm

a
    b
7.

Biểu diễn chuỗi thực tế sẽ là -

'   a\n    b'

a
    b
3 sẽ tước các không gian trắng và hàng đầu, nhưng không phải là
a
    b
9 và không gian ở giữa, do đó bạn đang nhận được nhiều dòng và không gian ở giữa không bị xóa.

Để trường hợp của bạn hoạt động, bạn nên đọc từng dòng đầu vào và sau đó tước từng dòng và viết lại.

Thí dụ -

import sys

if __name__ == "__main__":
    with open("input.txt", "r") as text_file, open("Output.txt", "w") as out_file:
        for line in text_file:
            out_file.write(line.strip() + '\n')

Đã trả lời ngày 4 tháng 7 năm 2015 lúc 7:46Jul 4, 2015 at 7:46

Hướng dẫn python split lines and trim - python chia dòng và cắt

Anand s Kumaranand s KumarAnand S Kumar

85.5K18 Huy hiệu vàng178 Huy hiệu bạc170 Huy hiệu đồng18 gold badges178 silver badges170 bronze badges

0

Sử dụng

for line in s.splitlines()

để lặp lại trên mỗi dòng và sử dụng

import sys

if __name__ == "__main__":
    text_file = open("input.txt", "r")
    s = text_file.read()
    s = s.strip()
    text_file.close()
    with open("Output.txt", "w") as text_file:
        text_file.write(s)
0 cho chúng.

Đã trả lời ngày 4 tháng 7 năm 2015 lúc 7:44Jul 4, 2015 at 7:44

Hướng dẫn python split lines and trim - python chia dòng và cắt

Himanshu Mishrahimanshu MishraHimanshu Mishra

7.98211 Huy hiệu vàng36 Huy hiệu bạc72 Huy hiệu đồng11 gold badges36 silver badges72 bronze badges

4

Chỉ để hoàn thiện, cũng có

import sys

if __name__ == "__main__":
    text_file = open("input.txt", "r")
    s = text_file.read()
    s = s.strip()
    text_file.close()
    with open("Output.txt", "w") as text_file:
        text_file.write(s)
1, ví dụ: cho phép viết các chuỗi nhiều dòng được thụt vào mã (cho khả năng đọc), trong khi các chuỗi kết quả không có khoảng trắng bên trái. Ví dụ như được đưa ra trong https://docs.python.org/3/l Library/TextWrap.html#textwrap.dedent

import textwrap

def test():
        # end first line with \ to avoid the empty line!
        s = '''\
        hello
          world
        '''
        print(repr(s))          # prints '    hello\n      world\n    '
        print(repr(dedent(s)))  # prints 'hello\n  world\n'

Đã trả lời ngày 15 tháng 12 năm 2020 lúc 12:06Dec 15, 2020 at 12:06

Hướng dẫn python split lines and trim - python chia dòng và cắt

Thokuthokuthoku

1.0808 Huy hiệu bạc26 Huy hiệu đồng8 silver badges26 bronze badges

Python cung cấp ba phương pháp có thể được sử dụng để cắt không gian trắng từ đối tượng chuỗi.

Chuỗi trang trí Python

  • Dải (): Trả về một chuỗi mới sau khi loại bỏ bất kỳ không gian trắng dẫn đầu và dấu vết bao gồm các tab (
    import sys
    
    if __name__ == "__main__":
        text_file = open("input.txt", "r")
        s = text_file.read()
        s = s.strip()
        text_file.close()
        with open("Output.txt", "w") as text_file:
            text_file.write(s)
    
    2).
    : returns a new string after removing any leading and trailing whitespaces including tabs (
    import sys
    
    if __name__ == "__main__":
        text_file = open("input.txt", "r")
        s = text_file.read()
        s = s.strip()
        text_file.close()
        with open("Output.txt", "w") as text_file:
            text_file.write(s)
    
    2).
  • RSTRIP (): Trả về một chuỗi mới với khoảng trắng kéo dài. Nó dễ nhớ hơn khi loại bỏ các không gian trắng khỏi phía bên phải của chuỗi.: returns a new string with trailing whitespace removed. It’s easier to remember as removing white spaces from “right” side of the string.
  • LSTRIP (): Trả về một chuỗi mới với khoảng trắng hàng đầu bị loại bỏ hoặc loại bỏ khoảng trắng khỏi phía bên trái của chuỗi.: returns a new string with leading whitespace removed, or removing whitespaces from the “left” side of the string.

Tất cả các phương pháp này không chấp nhận bất kỳ đối số nào để loại bỏ khoảng trắng. Nếu một đối số ký tự được cung cấp, thì họ sẽ loại bỏ các ký tự đó khỏi chuỗi khỏi các địa điểm dẫn đầu và theo dõi. Hãy cùng xem một ví dụ đơn giản về việc cắt tỉa khoảng trắng từ chuỗi trong Python.

a
    b
0

Output:

a
    b
1

Hãy cùng xem xét một số ví dụ khác với các chuỗi có một dòng mới và tab.

a
    b
2

Bạn có thể kiểm tra thêm các ví dụ chuỗi Python từ kho GitHub của chúng tôi.

Muốn tìm hiểu thêm? Tham gia cộng đồng DigitalOcean!

Tham gia cộng đồng DigitalOcean của chúng tôi miễn phí hơn một triệu nhà phát triển! Nhận trợ giúp và chia sẻ kiến ​​thức trong phần Câu hỏi & Câu trả lời của chúng tôi, tìm hướng dẫn và công cụ sẽ giúp bạn phát triển như một nhà phát triển và mở rộng quy mô dự án hoặc doanh nghiệp của bạn, và đăng ký các chủ đề quan tâm.

Đăng ký

Làm thế nào để bạn chia và cắt trong Python?

Để phân chia một chuỗi và loại bỏ khoảng trắng:..
Sử dụng str. phương thức chia () để chia chuỗi thành một danh sách ..
Sử dụng danh sách hiểu để lặp lại trong danh sách ..
Trên mỗi lần lặp, sử dụng str. Phương thức dải () để loại bỏ khoảng trắng hàng đầu và dấu vết ..

Làm thế nào để bạn phân chia một dòng phá vỡ trong Python?

Phương thức splitlines () chuỗi python được sử dụng để phân chia các dòng ở ranh giới dòng.Hàm trả về một danh sách các dòng trong chuỗi, bao gồm ngắt dòng (tùy chọn).Tham số: Keepends (Tùy chọn): Khi được đặt thành các lần ngắt dòng thực được bao gồm trong danh sách kết quả. is used to split the lines at line boundaries. The function returns a list of lines in the string, including the line break(optional). Parameters: keepends (optional): When set to True line breaks are included in the resulting list.

Làm thế nào để bạn chia một chuỗi thành nhiều dòng trong Python?

Bạn có thể có một chuỗi phân chia trên nhiều dòng bằng cách đặt nó theo trích dẫn ba.Ngoài ra, giá đỡ cũng có thể được sử dụng để truyền một chuỗi thành các dòng khác nhau.Hơn nữa, Backslash hoạt động như một nhân vật tiếp tục dòng trong Python.Bạn có thể sử dụng nó để tham gia văn bản trên các dòng riêng biệt và tạo một chuỗi đa dòng.enclosing it in triple quotes. Alternatively, brackets can also be used to spread a string into different lines. Moreover, backslash works as a line continuation character in Python. You can use it to join text on separate lines and create a multiline string.

Trim () làm gì trong Python?

Trang trí Python về cơ bản có nghĩa là loại bỏ khoảng trắng khỏi một chuỗi.Trong khi xử lý các chuỗi trong các tệp hoặc chuỗi đầu vào của người dùng, khoảng trắng là một vấn đề phổ biến.Vì Python coi khoảng trắng là một nhân vật, chúng cũng sẽ được in trong trường hợp bạn quyết định in chuỗi.removing whitespaces from a string. While dealing with strings in files or user input strings, whitespaces are a common problem. Since Python considers whitespaces as a character, they would also be printed in case you decide to print the string.