تقنية

line_num في بايثون: هل يعد محارف السطر الجديد؟

مدخل واحد وعد 1
القائمة. [1] [2]

نغير طريقة تقديم النص نفسه إلى القارئ. [1] [2]

الخلاصة السريعة

لا؛ يعد line_num المدخلات المستهلكة من مكرر المصدر هنا. [1] [2]

  • النص سجل واحد بحقل مقتبس يحوي سطرًا جديدًا. [1] [2]
  • القائمة [raw] تقدم النص في مدخل واحد. [1] [2]
  • StringIO يقدمه في مدخلين في مثالنا. [1] [2]
  • السجلان متساويان؛ العدّادان 1 و2. [1] [2]
  • اختبرنا 3.12.14 في الذاكرة؛ لا ملف فعلي. [1] [2]

المثال

import csv
from io import StringIO
raw='bud,"leaf\nkite"\n'
a=csv.reader([raw])
with StringIO(raw,newline='') as source:
    b=csv.reader(source)
    print(next(a)==next(b))
    print(a.line_num,b.line_num)

[1] [2]

مصدر العد

المصدر هنا يزيد العدّاد لكل نص يأخذه من المكرر، قبل تحليل محارفه. المخرجان True ثم 1 2. لذلك لا نستنتج عدد محارف \n من العدّاد وحده. [1] [2]

مدخلان وعد 2
مكرر الذاكرة. [1] [2]

النطاق

الحقل المقتبس يسمح بالسطر الداخلي في هذا السجل. لا نعمم على تجزئة عشوائية لأي ملف CSV؛ طريقة تقديم الأسطر جزء من المدخل، والنص نفسه لم يتغير. [1] [2]

المراجع

  1. Python 3.12: csvreader.line_num
  2. CPython 3.12.14: _csv.c
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.