Python-da yeni sətirləri ehtiva edən sətirləri çıxarın, birləşdirin, bölün, silin və dəyişdirin

Biznes

Aşağıdakılar Python-da yeni sətirləri ehtiva edən sətirlərin işini təsvir edir.

  • Yeni sətirlərdən ibarət sətir yaradın, çap çıxışı (ekran)
    • yeni sətir simvolu (sistemdən asılı olaraq CR və LF-nin hər ikisi və ya hər ikisi)\n(LF),\r\n(CR+LF)
    • üçlü sitat'',"""
    • Əgər abzas etmək istəyirsinizsə
  • Sətirlərin siyahısını yeni sətirlərlə birləşdirin
  • Sətri yeni sətirlərə və siyahıya bölün:splitlines()
  • Sətir axını kodlarını çıxarın və dəyişdirin
  • Sonda yeni sətir olmadan çıxışı çap edin

Yeni sətirlərdən ibarət sətir yaradın, çıxışı çap edin

yeni sətir simvolu (sistemdən asılı olaraq CR və LF-nin hər ikisi və ya hər ikisi)\n(LF),\r\n(CR+LF)

Sətir axını kodunu sətirə daxil etmək yeni sətirlə nəticələnəcək.

s = 'Line1\nLine2\nLine3'
print(s)
# Line1
# Line2
# Line3

s = 'Line1\r\nLine2\r\nLine3'
print(s)
# Line1
# Line2
# Line3

Xətt axını kodlarından aşağıdakı yollarla istifadə edilə bilər. Bəzi redaktorlar sətir kəsilməsi kodunu seçməyə imkan verir.

Macを含むUnix系\n(LF)
Windows系\r\n(CR+LF)

üçlü sitat'',"""

Sətri əlavə etmək üçün üçlü sitatdan istifadə edilərsə, o, yeni sətirlər də daxil olmaqla olduğu kimi sətir olacaqdır.

s = '''Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3

Əgər abzas etmək istəyirsinizsə

Üçlü dırnaq işarələri də sətirdəki boşluqlardır, ona görə də kodda səliqəli yazmağa və aşağıda göstərildiyi kimi abzas etməyə çalışsanız, lazımsız boşluqlar daxil ediləcək.

s = '''
    Line1
    Line2
    Line3
    '''
print(s)
# 
#     Line1
#     Line2
#     Line3
#     

Koddakı yeni sətirləri görməməzlikdən gəlmək və onu davam sətirinə çevirmək üçün tərs kəsik işarəsindən istifadə etməklə, aşağıdakı kimi yazıla bilər.

Hər sətri ” və ya “” ilə bağlayın və cümlənin sonuna yeni sətir simvolu ←n əlavə edin.

s = 'Line1\n'\
    'Line2\n'\
    'Line3'
print(s)
# Line1
# Line2
# Line3

Burada sintaksis ondan ibarətdir ki, ardıcıl sətir literalları birləşdirilir. Təfərrüatlar üçün aşağıdakı məqaləyə baxın.

Əgər sətirdə abzas əlavə etmək istəyirsinizsə, sadəcə olaraq hər sətirdə sətirə boşluq əlavə edin.

s = 'Line1\n'\
    '    Line2\n'\
    '        Line3'
print(s)
# Line1
#     Line2
#         Line3

Bundan əlavə, sətir kəsmələri mötərizədə sərbəst şəkildə edilə bildiyi üçün, əks kəsiklər əvəzinə mötərizələrdən istifadə etməklə aşağıdakılar yazıla bilər.

s = ('Line1\n'
     'Line2\n'
     'Line3')
print(s)
# Line1
# Line2
# Line3

s = ('Line1\n'
     '    Line2\n'
     '        Line3')
print(s)
# Line1
#     Line2
#         Line3

Əgər siz sadəcə sətrin əvvəlini hizalamaq istəyirsinizsə, üçlü sitatların ilk sətirinə tərs xətt əlavə edin.

s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3

s = '''\
Line1
    Line2
        Line3'''
print(s)
# Line1
#     Line2
#         Line3

Sətirlərin siyahısını yeni sətirlərlə birləşdirin

Sətirlərin siyahısını bir sətirdə birləşdirmək üçün join() string metodundan istifadə edilə bilər.

join() yeni sətir simvolundan çağırıldıqda, hər bir sətir elementi yeni sətirlə birləşdirilir.

l = ['Line1', 'Line2', 'Line3']

s_n = '\n'.join(l)
print(s_n)
# Line1
# Line2
# Line3

print(repr(s_n))
# 'Line1\nLine2\nLine3'

s_rn = '\r\n'.join(l)
print(s_rn)
# Line1
# Line2
# Line3

print(repr(s_rn))
# 'Line1\r\nLine2\r\nLine3'

Yuxarıdakı nümunədə olduğu kimi, daxili repr() funksiyası yeni sətir kodları olan sətirləri olduğu kimi yoxlamaq üçün istifadə edilə bilər.

Sətri yeni sətirlərə və siyahıya bölün:splitlines()

Splitlines() sətir metodu sətri yeni sətirlər siyahısına bölmək üçün istifadə edilə bilər.

splitlines() aşağıdakı sətir kəsmə kodlarından hər hansı birini böləcək. Şaquli nişanlar və səhifə fasilələri də bölünür.

  • \n
  • \r\n
  • \v
  • \f
s = 'Line1\nLine2\r\nLine3'
print(s.splitlines())
# ['Line1', 'Line2', 'Line3']

Sətir axını kodlarını çıxarın və dəyişdirin

Splitlines() və join() funksiyalarını birləşdirərək yeni sətirləri ehtiva edən sətirdən yeni sətir kodlarını silmək (çıxarmaq) və ya onları başqa sətirlərlə əvəz etmək mümkündür.

s = 'Line1\nLine2\r\nLine3'

print(''.join(s.splitlines()))
# Line1Line2Line3

print(' '.join(s.splitlines()))
# Line1 Line2 Line3

print(','.join(s.splitlines()))
# Line1,Line2,Line3

Xətt axını kodlarının toplu dəyişdirilməsi də mümkündür. Sətir kəsmə kodları qarışıq və ya naməlum olsa belə, onları splitlines() istifadə edərək bölmək və sonra istədiyiniz sətir kəsmə kodu ilə birləşdirə bilərsiniz.

s_n = '\n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3

print(repr(s_n))
# 'Line1\nLine2\nLine3'

Yuxarıda qeyd edildiyi kimi, splitlines() ya yeni sətir kodunu böləcək, ona görə də splitlines() və join() birləşdirən metodda yeni sətir kodları ilə bağlı xüsusi narahatlığa ehtiyac yoxdur.

Əgər yeni sətir kodu aydındırsa, onu sətri əvəz edən replace() metodu ilə də əvəz etmək olar.

s = 'Line1\nLine2\nLine3'

print(s.replace('\n', ''))
# Line1Line2Line3

print(s.replace('\n', ','))
# Line1,Line2,Line3

Nəzərə alın ki, o, gözləniləndən fərqli sətir lenti kodlarını ehtiva edərsə işləməyəcək.

s = 'Line1\nLine2\r\nLine3'

s_error = s.replace('\n', ',')
print(s_error)
# ,Line3Line2

print(repr(s_error))
# 'Line1,Line2\r,Line3'

s_error = s.replace('\r\n', ',')
print(s_error)
# Line1
# Line2,Line3

print(repr(s_error))
# 'Line1\nLine2,Line3'

Replace() funksiyasını təkrarlamaqla bir neçə yeni sətir kodunu əvəz etmək mümkündür, lakin “\r\n” tərkibində “\n” olduğu üçün sifariş səhv olarsa, bu işləməyəcək. Yuxarıda təsvir edilən splitlines() və join() metodunu birləşdirən üsul daha təhlükəsizdir, çünki sətir axını kodları ilə bağlı narahat olmağa ehtiyac yoxdur.

s = 'Line1\nLine2\r\nLine3'

print(s.replace('\r\n', ',').replace('\n', ','))
# Line1,Line2,Line3

s_error = s.replace('\n', ',').replace('\r\n', ',')
print(s_error)
# ,Line3Line2

print(repr(s_error))
# 'Line1,Line2\r,Line3'

print(','.join(s.splitlines()))
# Line1,Line2,Line3

Cümlənin sonundakı sətir axını kodlarını silmək üçün rstrip() metodundan istifadə edin. rstrip() sətrin sağ sonundakı boşluq simvollarını (sətir lentləri daxil olmaqla) silmək üsuludur.

s = 'aaa\n'
print(s + 'bbb')
# aaa
# bbb

print(s.rstrip() + 'bbb')
# aaabbb

Sonda yeni sətir olmadan çıxışı çap edin

print() funksiyası defolt olaraq arxada gələn yeni sətir əlavə edir. Buna görə də, əgər print() ardıcıl olaraq yerinə yetirilərsə, hər bir çıxış nəticəsi yeni sətirdə göstərilir.

print('a')
print('b')
print('c')
# a
# b
# c

Bunun səbəbi, sonuna əlavə olunacaq sətri təyin edən print() sonu arqumentinin standart dəyərinin yeni sətir simvoludur.

Əgər sonunda yeni sətir istəmirsinizsə, sadəcə olaraq arqumentin sonunu boş sətirə təyin edin və nəticə sonunda yeni sətir olmadan çıxacaq.

print('a', end='')
print('b', end='')
print('c', end='')
# abc

Arqumentin sonu istənilən sətir ola bilər.

print('a', end='-')
print('b', end='-')
print('c')
# a-b-c

Bununla belə, çıxış üçün sətirləri birləşdirmək istəyirsinizsə, orijinal sətirləri birləşdirmək onları print() funksiyasının son arqumentində göstərməkdən daha asandır. Aşağıdakı məqaləyə baxın.

Copied title and URL