اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

هذا يعتمد على ما ستقوم به الدالة . هل ستقوم فقط بقراءة ملف وإعادة محتوياته ؟ أم ستقوم بتنفيذ كود أخر بجانب قراءة الملف .

إذا كان فقط ستقوم بقراءة الملف فهنا إنشاء دالة جديدة ليس جيدا وستقوم بكتابة أكواد أكثر دون الحاجة لها .

فإليك الكود مثلا بدون دالة :

import pandas as pd

df1 = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')
df3 = pd.read_csv('file3.csv')

وهذا هو الكود حين إنشاء دالة :

import pandas as pd

def load_csv(path):
    return pd.read_csv(path)

df1 = load_csv('file1.csv')
df2 = load_csv('file2.csv')
df3 = load_csv('file3.csv')

لاحظ كيف أنك قمت بزيادة أكواد فقط لإنشاء دالة لا حاجة لها .

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

import pandas as pd

def load_csv(path):
    try:
        return pd.read_csv(path, encoding='utf-8')
    except Exception as e:
        print(f"Error loading {path}: {e}")
        return None

df1 = load_csv('file1.csv')
df2 = load_csv('file2.csv')
df3 = load_csv('file3.csv')

هنا سيكون الكود أقل بالطبع وأفضل .

ويمكنك أيضا إستخدام حلقة تكرار for إذا كنت مثلا تريد فتح الملفات في مجلد ما . فبدلا من كتابة المسار يدويا يمكنك إستخدام for للتكرار على ملفات المجلد مباشرة .

  • 0
نشر

يمكنك إنشاء دالة تحتوي على

pd.read_csv()

فكرة إنشاء دالة لقراءة ملفات CSV باستخدام

pd.read_csv()

منطقية، إذا كنت تقرأ عدة ملفات CSV بنفس الطريقة أو إذا كنت تريد تقليل التكرار في الكود و إذا كنت قد تحتاج إلى إعادة استخدام نفس المنطق في أماكن أخرى من المشروع.

import pandas as pd

def read_csv_file(file_path, encoding='utf-8', delimiter=','):
    try:
        df = pd.read_csv(file_path, encoding=encoding, delimiter=delimiter)
        print(f"Loaded {file_path} successfully!")
        return df
    except FileNotFoundError:
        print(f"Error: File {file_path} not found.")
        return None
    except Exception as e:
        print(f"Error loading {file_path}: {str(e)}")
        return None

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...