ลบช่องว่างนำหน้าและต่อท้ายไหม


112

ฉันมีปัญหาในการพยายามใช้ .strip กับโค้ดบรรทัดต่อไปนี้

ขอบคุณสำหรับความช่วยเหลือ

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

3
Line คืออะไร? ตัวอย่างจะดีมากหรือเราแค่คาดเดา
jamylak

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

1
จากรหัสที่คุณเพิ่งโพสต์ดูเหมือนว่าคุณจะลืม paranthesis หลังจากถอด
เสื้อผ้า

คุณพลาดวงเล็บการเรียกฟังก์ชันหลังจากstripนั้น คุณต้องการ: f.write(str(re.split("Tech ID:|Name:|Account #:",line)[-1]).strip()).
Li-aung Yip

1
ทำไมคุณไม่เพิ่มช่องว่างให้กับนิพจน์ทั่วไปของคุณ: re.split(r"\s*(?:Tech ID:|Name:|Account #:)\s*ฯลฯ
georg

คำตอบ:


238

คุณสามารถใช้แถบ () เพื่อลบช่องว่างต่อท้ายและนำหน้า

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

หมายเหตุ: ช่องว่างภายในจะถูกรักษาไว้


31
อย่าลืมกำหนดผลลัพธ์ของ s.strip () กลับไปที่ s ถ้านั่นคือเป้าหมายของคุณ: s = s.strip ()
Seanonymous

@GregSchmit ใครจะพลาดได้อย่างไร ถูกใจ 78 คนและไม่มีใครสังเกตเห็น? แปลก.
MYGz

@MYGz ใช่ฉันตั้งคำถามกับตัวเองด้วยซ้ำว่าฉันอาจจะพลาดอะไรไป
Greg Schmit

2
@GregSchmit เห็นได้ชัดว่า 89294 ตาสแกนมัน คุณมีคู่คม 1 คู่: P
MYGz

เห็นได้ชัดว่าฉันทำอะไรผิด แต่ฉันไม่รู้ว่ามันคืออะไร เมื่อฉันเรียกใช้ strip () บนสตริงฉันจะได้รับรายการสตริงกลับมาไม่ใช่สตริง
Jeff Silverman

5

ขยายซับของคุณเป็นหลายบรรทัด จากนั้นมันจะกลายเป็นเรื่องง่าย:

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

ควรสังเกตว่าstrip()เมธอดจะตัดอักขระช่องว่างที่นำหน้าและต่อท้ายออกจากสตริง (หากไม่มีอาร์กิวเมนต์ที่ส่งผ่าน) หากคุณต้องการตัดอักขระเว้นวรรคในขณะที่ยังคงอักขระอื่น ๆ ไว้ (เช่นขึ้นบรรทัดใหม่) คำตอบนี้อาจเป็นประโยชน์:

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

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

strip([chars]): คุณสามารถส่งผ่านอักขระเสริมไปยังstrip([chars])วิธีการ Python จะค้นหาการเกิดขึ้นของอักขระเหล่านี้และตัดแต่งสตริงที่กำหนดตามนั้น


0

ไฟล์เริ่มต้น:

     line 1
   line 2
line 3  
      line 4 

รหัส:

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

เอาท์พุต:

line 1
line 2
line 3
line 4
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.