لا، الحل جيد.
تستطيعين اختصار بعض السطور:
# element = element.replace("\xe2\x80\xaa", "")
# element = element.replace("\xe2\x80\xac", "")
# element = element.replace("\xe2\x80\xab", "")
# translate يستخدم للتبديل بين الحروف لكن يمكن حذف الحروف غيرالمرغوبة
# .عن طريق وضعها في الخانة الثانية
element = element.translate(None, "\xe2\x80\xaa" + "\xe2\x80\xac" + "\xe2\x80\xab")
بالنسبة لمشكلة عدم ظهور الحروف العربية داخل القائمة(list)، فلم أجد تفسيرا لها، لكن هناك حل.
يبدو أن المشكلة غير موجودة في نسخة البايثون3 (Python3).
#Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] on win32
def parse_1 (file, x=";", y="#"):
f = open(file, encoding='utf-8').readlines()
# ^^^^^^^
# .يجب تحديد طريقة التشفير التي يجب قراءة الملف بها
# . من الممكن أن يتم قراءة الملف بشك خاطئ اذا تم استعمال التشفير التلقائي
for line in f:
if line[0] == y:
continue
line = line.strip()
print(line) #string
line = line.split(x)
print(line) #list
for element in line:
print(element)
print()
parse_1('arabic.txt', '!')
الناتج:
١!٢!٣
['١', '٢', '٣']
١
٢
٣
٢!٣!٤
['٢', '٣', '٤']
٢
٣
٤
٣!٤!٥
['٣', '٤', '٥']
٣
٤
٥