Object Oriented Python - ไฟล์และสตริง

สตริง

สตริงเป็นประเภทข้อมูลที่นิยมใช้มากที่สุดในทุกภาษาโปรแกรม ทำไม? เนื่องจากเราเข้าใจข้อความดีกว่าตัวเลขดังนั้นในการเขียนและการพูดเราจึงใช้ข้อความและคำในการเขียนโปรแกรมเช่นเดียวกันเราจึงใช้สตริง ในสตริงเราแยกวิเคราะห์ข้อความวิเคราะห์ความหมายของข้อความและทำการขุดข้อมูล - และข้อมูลทั้งหมดนี้เป็นข้อความที่มนุษย์บริโภคสตริงใน Python ไม่เปลี่ยนรูป

การจัดการสตริง

ใน Python สามารถทำเครื่องหมายสตริงได้หลายวิธีโดยใช้ single quote ('), double quote (") หรือแม้แต่ triple quote (' '') ในกรณีของสตริงหลายบรรทัด

>>> # String Examples
>>> a = "hello"
>>> b = ''' A Multi line string,
Simple!'''
>>> e = ('Multiple' 'strings' 'togethers')

การปรับแต่งสตริงมีประโยชน์มากและใช้กันอย่างแพร่หลายในทุกภาษา บ่อยครั้งโปรแกรมเมอร์ต้องแยกสายและตรวจสอบอย่างใกล้ชิด

สตริงสามารถวนซ้ำได้ (อักขระตามอักขระ) หั่นบาง ๆ หรือเรียงต่อกัน ไวยากรณ์เหมือนกับรายการ

คลาส str มีวิธีการมากมายเพื่อให้จัดการกับสตริงได้ง่ายขึ้น คำสั่ง dir และ help ให้คำแนะนำใน Python interpreter ว่าจะใช้อย่างไร

ด้านล่างนี้เป็นวิธีการสตริงที่เราใช้กันทั่วไป

ซีเนียร์ วิธีการและคำอธิบาย
1

isalpha()

ตรวจสอบว่าอักขระทั้งหมดเป็น Alphabets หรือไม่

2

isdigit()

ตรวจสอบอักขระหลัก

3

isdecimal()

ตรวจสอบอักขระทศนิยม

4

isnumeric()

ตรวจสอบอักขระตัวเลข

5

find()

ส่งกลับดัชนีสูงสุดของสตริงย่อย

6

istitle()

ตรวจสอบสตริง Titlecased

7

join()

ส่งคืนสตริงที่ต่อกัน

8

lower()

ส่งคืนสตริง cased ที่ต่ำกว่า

9

upper()

ส่งคืนสตริง cased ด้านบน

10

partion()

ส่งคืนทูเพิล

11

bytearray()

ส่งคืนอาร์เรย์ของขนาดไบต์ที่กำหนด

12

enumerate()

ส่งคืนวัตถุแจงนับ

13

isprintable()

ตรวจสอบอักขระที่พิมพ์ได้

ลองเรียกใช้วิธีการสตริงสองสามวิธี

>>> str1 = 'Hello World!'
>>> str1.startswith('h')
False
>>> str1.startswith('H')
True
>>> str1.endswith('d')
False
>>> str1.endswith('d!')
True
>>> str1.find('o')
4
>>> #Above returns the index of the first occurence of the character/substring.
>>> str1.find('lo')
3
>>> str1.upper()
'HELLO WORLD!'
>>> str1.lower()
'hello world!'
>>> str1.index('b')
Traceback (most recent call last):
   File "<pyshell#19>", line 1, in <module>
      str1.index('b')
ValueError: substring not found
>>> s = ('hello How Are You')
>>> s.split(' ')
['hello', 'How', 'Are', 'You']
>>> s1 = s.split(' ')
>>> '*'.join(s1)
'hello*How*Are*You'
>>> s.partition(' ')
('hello', ' ', 'How Are You')
>>>

การจัดรูปแบบสตริง

ใน Python 3.x การจัดรูปแบบของสตริงมีการเปลี่ยนแปลงตอนนี้มีเหตุผลมากขึ้นและมีความยืดหยุ่นมากขึ้น การจัดรูปแบบสามารถทำได้โดยใช้วิธีการ format () หรือเครื่องหมาย% (แบบเก่า) ในสตริงรูปแบบ

สตริงสามารถมีข้อความตามตัวอักษรหรือฟิลด์แทนที่คั่นด้วยวงเล็บปีกกา {} และแต่ละฟิลด์แทนที่อาจมีดัชนีตัวเลขของอาร์กิวเมนต์ตำแหน่งหรือชื่อของอาร์กิวเมนต์คำหลัก

ไวยากรณ์

str.format(*args, **kwargs)

การจัดรูปแบบพื้นฐาน

>>> '{} {}'.format('Example', 'One')
'Example One'
>>> '{} {}'.format('pie', '3.1415926')
'pie 3.1415926'

ตัวอย่างด้านล่างช่วยให้สามารถจัดเรียงลำดับการแสดงผลใหม่ได้โดยไม่ต้องเปลี่ยนอาร์กิวเมนต์

>>> '{1} {0}'.format('pie', '3.1415926')
'3.1415926 pie'

การเว้นและการจัดตำแหน่งสตริง

สามารถเพิ่มค่าตามความยาวที่ระบุได้

>>> #Padding Character, can be space or special character
>>> '{:12}'.format('PYTHON')
'PYTHON '
>>> '{:>12}'.format('PYTHON')
' PYTHON'
>>> '{:<{}s}'.format('PYTHON',12)
'PYTHON '
>>> '{:*<12}'.format('PYTHON')
'PYTHON******'
>>> '{:*^12}'.format('PYTHON')
'***PYTHON***'
>>> '{:.15}'.format('PYTHON OBJECT ORIENTED PROGRAMMING')
'PYTHON OBJECT O'
>>> #Above, truncated 15 characters from the left side of a specified string
>>> '{:.{}}'.format('PYTHON OBJECT ORIENTED',15)
'PYTHON OBJECT O'
>>> #Named Placeholders
>>> data = {'Name':'Raghu', 'Place':'Bangalore'}
>>> '{Name} {Place}'.format(**data)
'Raghu Bangalore'
>>> #Datetime
>>> from datetime import datetime
>>> '{:%Y/%m/%d.%H:%M}'.format(datetime(2018,3,26,9,57))
'2018/03/26.09:57'

สตริงคือ Unicode

สตริงเป็นคอลเลกชันของอักขระ Unicode ที่ไม่เปลี่ยนรูป สตริง Unicode ให้โอกาสในการสร้างซอฟต์แวร์หรือโปรแกรมที่ทำงานได้ทุกที่เนื่องจากสตริง Unicode สามารถแสดงอักขระที่เป็นไปได้ใด ๆ ที่เป็นไปได้ไม่ใช่แค่อักขระ ASCII

การดำเนินการ IO จำนวนมากรู้วิธีจัดการกับไบต์เท่านั้นแม้ว่าออบเจ็กต์ไบต์จะอ้างถึงข้อมูลที่เป็นข้อความก็ตาม ดังนั้นจึงเป็นเรื่องสำคัญมากที่จะต้องทราบวิธีการแลกเปลี่ยนระหว่างไบต์และ Unicode

การแปลงข้อความเป็นไบต์

การแปลงสตริงเป็นไบต์อ็อบเจกต์เรียกว่าเป็นการเข้ารหัส การเข้ารหัสมีหลายรูปแบบโดยทั่วไป ได้แก่ PNG; JPEG, MP3, WAV, ASCII, UTF-8 เป็นต้นนอกจากนี้ (การเข้ารหัส) เป็นรูปแบบที่ใช้แทนเสียงรูปภาพข้อความและอื่น ๆ ในหน่วยไบต์

การแปลงนี้เป็นไปได้ผ่านการเข้ารหัส () ใช้เทคนิคการเข้ารหัสเป็นอาร์กิวเมนต์ โดยค่าเริ่มต้นเราใช้เทคนิค 'UTF-8'

>>> # Python Code to demonstrate string encoding 
>>> 
>>> # Initialising a String 
>>> x = 'TutorialsPoint' 
>>> 
>>> #Initialising a byte object 
>>> y = b'TutorialsPoint'
>>> 
>>> # Using encode() to encode the String >>> # encoded version of x is stored in z using ASCII mapping 
>>> z = x.encode('ASCII') 
>>> 
>>> # Check if x is converted to bytes or not 
>>> 
>>> if(z==y): 
   print('Encoding Successful!') 
else: 
   print('Encoding Unsuccessful!') 
Encoding Successful!

Converting bytes to text

การแปลงไบต์เป็นข้อความเรียกว่าการถอดรหัส สิ่งนี้ดำเนินการผ่านการถอดรหัส () เราสามารถแปลงสตริงไบต์เป็นสตริงอักขระได้ถ้าเรารู้ว่าการเข้ารหัสใดที่ใช้ในการเข้ารหัส

ดังนั้นการเข้ารหัสและถอดรหัสจึงเป็นกระบวนการผกผัน

>>> 
>>> # Python code to demonstrate Byte Decoding 
>>> 
>>> #Initialise a String 
>>> x = 'TutorialsPoint' 
>>> 
>>> #Initialising a byte object 
>>> y = b'TutorialsPoint' 
>>> 
>>> #using decode() to decode the Byte object 
>>> # decoded version of y is stored in z using ASCII mapping 
>>> z = y.decode('ASCII')
>>> #Check if y is converted to String or not 
>>> if (z == x): 
   print('Decoding Successful!') 
else: 
   print('Decoding Unsuccessful!') Decoding Successful! 
>>>

ไฟล์ I / O

ระบบปฏิบัติการแทนไฟล์ตามลำดับไบต์ไม่ใช่ข้อความ

ไฟล์คือตำแหน่งที่ระบุชื่อบนดิสก์เพื่อจัดเก็บข้อมูลที่เกี่ยวข้อง ใช้เพื่อจัดเก็บข้อมูลอย่างถาวรในดิสก์ของคุณ

ใน Python การดำเนินการไฟล์จะเกิดขึ้นตามลำดับต่อไปนี้

  • เปิดไฟล์
  • อ่านหรือเขียนลงในไฟล์ (การดำเนินการ) เปิดไฟล์
  • ปิดไฟล์

Python ห่อกระแสข้อมูลไบต์ขาเข้า (หรือขาออก) ด้วยการเรียกถอดรหัส (หรือเข้ารหัส) ที่เหมาะสมเพื่อให้เราจัดการกับวัตถุ str ได้โดยตรง

การเปิดไฟล์

Python มีฟังก์ชันในตัว open () เพื่อเปิดไฟล์ สิ่งนี้จะสร้างอ็อบเจ็กต์ไฟล์หรือที่เรียกว่าแฮนเดิลซึ่งใช้เพื่ออ่านหรือแก้ไขไฟล์ตามนั้น

>>> f = open(r'c:\users\rajesh\Desktop\index.webm','rb')
>>> f
<_io.BufferedReader name='c:\\users\\rajesh\\Desktop\\index.webm'>
>>> f.mode
'rb'
>>> f.name
'c:\\users\\rajesh\\Desktop\\index.webm'

สำหรับการอ่านข้อความจากไฟล์เราจะต้องส่งชื่อไฟล์เข้าไปในฟังก์ชันเท่านั้น ไฟล์จะถูกเปิดขึ้นเพื่ออ่านและไบต์จะถูกแปลงเป็นข้อความโดยใช้การเข้ารหัสเริ่มต้นของแพลตฟอร์ม