تقنية

CSV في بايثون: هل نميز None من السلسلة الفارغة بعد الكتابة؟

None ينتج حقلًا فارغًا في الكاتب الافتراضي.
None يصبح فارغًا.

كاتب CSV الافتراضي يكتب None حقلًا فارغًا مثل السلسلة الفارغة. [1]

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

لا؛ النص الناتج وحده لا يستعيد الفرق. [1]

  • كاتب CSV الافتراضي يكتب None حقلًا فارغًا مثل السلسلة الفارغة. [1]
  • القارئ الافتراضي يعيد حقول الصف نصوصًا. [1]
  • مثال مؤلف على CPython 3.12.14: row أدناه ينتج النص الممثل بـ 'bud,,\r\n'. [1]
  • قراءته تعيد ["bud","",""]؛ لا تعيد None. [1]
  • تحكم: صف ["bud","",""] ينتج النص نفسه؛ يطابق تركيب الفواصل يدويًا، ويبقى row الأصلي. [1]

ضياع الفرق

كاتب CSV الافتراضي يكتب None حقلًا فارغًا مثل السلسلة الفارغة. [1]

حقول نصية

القارئ الافتراضي يعيد حقول الصف نصوصًا. [1]

الكتابة في الذاكرة

مثال مؤلف على CPython 3.12.14: row أدناه ينتج النص الممثل بـ 'bud,,\r\n'. [1]

import csv from io import StringIO row=["bud",None,""] buffer=StringIO() csv.writer(buffer).writerow(row) [1]

السلسلة الفارغة تنتج حقلًا فارغًا أيضًا.
السلسلة الفارغة تبقى فارغة.

القراءة والتحكم

قراءته تعيد ["bud","",""]؛ لا تعيد None. [1]

next(csv.reader(StringIO(buffer.getvalue()))) [1]

تحكم: صف ["bud","",""] ينتج النص نفسه؛ يطابق تركيب الفواصل يدويًا، ويبقى row الأصلي. [1]

المراجع

  1. Python — CSV

للتوسع: لغات البرمجة.

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