في Python 2.4، كيف يمكنني إزالة الأحرف بعد "؛"؟
-
19-09-2019 - |
سؤال
لنفترض أنني أقوم بتحليل ملف يستخدم ;
كحرف التعليق.لا أريد تحليل التعليقات.لذلك إذا كان الخط يبدو كالتالي:
example.com. 600 IN MX 8 s1b9.example.net ; hello!
هل هناك طريقة أسهل/أكثر أناقة لإزالة الأحرف بخلاف هذه:
rtr = ''
for line in file:
trig = False
for char in line:
if not trig and char != ';':
rtr += char
else:
trig = True
if rtr[max(rtr)] != '\n':
rtr += '\n'
المحلول
أنا أوصي بالقول
line.split(";")[0]
والتي ستمنحك سلسلة من جميع الأحرف حتى لا تشمل الأول "؛" ؛ شخصية.إذا لم يكن هناك حرف "؛" ، فسيعطيك السطر بأكمله.
نصائح أخرى
فقط قم بتقسيمه على الخط حسب التعليق ثم احصل على العنصر الأول
line.split(";")[0]
لبثيون 2.5 أو أكبر، أود استخدام partition
طريقة:
rtr = line.partition(';')[0].rstrip() + '\n'
file = open(r'c:\temp\test.txt', 'r')
for line in file: print
line.split(";")[0].strip()
خطوط القراءة والتقسيم والتعرية والانضمام مع خطوط نيولين للجميع في سطر واحد من بيثون:
rtr = '\n'.join(line.split(';')[0].strip() for line in open(r'c:\temp\test.txt', 'r'))
هنا طريقة أخرى:
في [6]: Line = "FOO؛ BAR" في [7]: خط [: Line.Find.find ("؛")] + " n" خارج [7]: 'foo n'
لم أختبر هذا مع بيثون ولكني استخدم رمز مماثل آخر حيث.
import re
content = open(r'c:\temp\test.txt', 'r').read()
content = re.sub(";.+", "\n")
لا تنتمي إلى StackOverflow