Xóa khoảng trắng đầu và cuối?


109

Tôi đang gặp khó khăn khi cố gắng sử dụng .strip với dòng mã sau.

Cảm ơn đã giúp đỡ.

f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])

3
Dòng là gì? Một ví dụ sẽ tuyệt vời hoặc chúng tôi chỉ đang phỏng đoán.
jamylak

f.write (str (re.split ("Tech ID: | Tên: | Tài khoản #:", dòng) [- 1]). dải)
fpena06

1
Từ mã bạn vừa đăng, có vẻ như bạn đã quên chú thích sau dải
jamylak

Bạn đã bỏ lỡ dấu ngoặc đơn của lệnh gọi hàm sau strip. Bạn muốn: f.write(str(re.split("Tech ID:|Name:|Account #:",line)[-1]).strip()).
Li-aung Yip

1
Tại sao bạn không thêm khoảng trắng vào biểu thức chính quy của mình: re.split(r"\s*(?:Tech ID:|Name:|Account #:)\s*v.v.
georg

Câu trả lời:


235

Bạn có thể sử dụng dải () để xóa dấu cách ở cuối và đầu.

>>> s = '   abd cde   '
>>> s.strip()
'abd cde'

Lưu ý: không gian bên trong được giữ nguyên


31
Đừng quên gán lại đầu ra của s.strip () cho s nếu đó là mục tiêu của bạn: s = s.strip ()
Seanonymous

@GregSchmit Làm sao mọi người có thể bỏ lỡ điều đó? 78 lượt thích và không ai để ý? Thật kỳ lạ.
MYGz

@MYGz Vâng, tôi thậm chí đang tự vấn bản thân, nghĩ rằng mình có thể đã bỏ lỡ điều gì đó.
Greg Schmit

2
@GregSchmit Rõ ràng 89294 con mắt đã quét nó. Bạn có 1 cặp sắc nét: P
MYGz

Rõ ràng là tôi đang làm sai điều gì đó, nhưng tôi không biết đó là gì. Khi tôi chạy dải () trên một chuỗi, tôi nhận lại một danh sách các chuỗi, không phải một chuỗi.
user1928764

5

Mở rộng một lớp lót của bạn thành nhiều dòng. Sau đó, nó trở nên dễ dàng:

f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])

parts = re.split("Tech ID:|Name:|Account #:",line)
wanted_part = parts[-1]
wanted_part_stripped = wanted_part.strip()
f.write(wanted_part_stripped)

3

Cần lưu ý rằng strip()phương thức sẽ cắt bất kỳ ký tự khoảng trắng đầu và cuối nào khỏi chuỗi (nếu không có đối số được truyền vào). Nếu bạn muốn cắt bớt (các) ký tự khoảng trắng, trong khi vẫn giữ các ký tự khác (như dòng mới), câu trả lời này có thể hữu ích:

sample = '  some string\n'
sample_modified = sample.strip(' ')

print(sample_modified)  # will print 'some string\n'

strip([chars]): Bạn có thể chuyển các ký tự tùy chọn vào strip([chars])phương thức. Python sẽ tìm kiếm sự xuất hiện của những ký tự này và cắt chuỗi đã cho cho phù hợp.


0

Bắt đầu tệp:

     line 1
   line 2
line 3  
      line 4 

Mã:

with open("filename.txt", "r") as f:
    lines = f.readlines()
    for line in lines:
        stripped = line.strip()
        print(stripped)

Đầu ra:

line 1
line 2
line 3
line 4
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.