argparse

  • استخدام قيم افتراضية في argparse

    عند استخدامك لوحدة argparser، وعند استخدام الأمرين أدناه:

    python
    parser.add_argument('-sub4', action='store', dest='subject4', help='Fourth subject', type=str, default="") parser.add_argument('-day', action='store', dest='day', help="yesterday/week default-today", type=str, default="today")

    يجب التأكد من كتابة السطر الثاني بشكل صحيح، حيث يحتاج السطر إلى علامة اقتباس نهائية بعد القيمة الافتراضية “today”. في السطر الثاني الذي ذكرته، يبدو أن هناك افتقادًا لعلامة الاقتباس النهائية، مما يؤدي إلى حدوث SyntaxError.

    بالنسبة لحل المشكلة وتحقيق السلوك المطلوب، يمكنك استخدام القيمة “today” كافتراضية في حال عدم تحديد قيمة للخيار “-day”، بشرط تصحيح الخطأ النحوي في الكود.

    فيما يلي الكود الصحيح:

    python
    parser.add_argument('-sub4', action='store', dest='subject4', help='Fourth subject', type=str, default="") parser.add_argument('-day', action='store', dest='day', help="yesterday/week default-today", type=str, default="today")

    عند استخدام هذا الكود الصحيح، سيتم أخذ القيمة “today” كافتراضية إذا لم يتم تحديد قيمة للخيار “-day”.

    المزيد من المعلومات

    عند استخدامك لوحدة argparser، يمكنك تحديد القيم الافتراضية للخيارات التي تقوم بتعريفها. هذا يسمح لك بتحديد سلوك افتراضي يتم اتباعه عندما لا يتم تقديم قيمة للخيار.

    في الكود الذي قدمته، تقوم بتعريف خيار يسمى “-day” الذي يحتوي على قيم محتملة هي “yesterday” أو “week”، وإذا لم يتم تحديد أي قيمة، فإن القيمة الافتراضية هي “today”. ولكن يجب التأكد من وضع علامة اقتباس نهائية بشكل صحيح حول القيمة الافتراضية “today”، كما هو موضح في الكود السابق.

    بعد تصحيح الكود، يمكنك استخدام الخيار “-day” كما تريد، وسيتم استخدام قيمة “today” كافتراضية إذا لم يتم تحديد قيمة أخرى.

    على سبيل المثال، يمكنك تشغيل برنامجك مع الخيار “-day” كالتالي:

    bash
    python my_program.py -day

    في هذا السياق، سيتم استخدام القيمة الافتراضية “today” للخيار “-day”.

    أو يمكنك تحديد قيمة مختلفة، على سبيل المثال:

    bash
    python my_program.py -day yesterday

    في هذا الحال، سيتم استخدام قيمة “yesterday” بدلاً من القيمة الافتراضية.

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

  • تمكين استخدام kwargs مع argparse في Python

    في لغة البرمجة بايثون، يمكنك استخدام وسائل متعددة لتمكين استخدام kwargs (الوسيطات الاسمية) عند استدعاء البرنامج من سطر الأوامر، ومن بين هذه الوسائل هو استخدام مكتبة argparse. للقيام بذلك، يمكنك تعديل الكود ليدعم تمرير الوسائط الاسمية من خلال argparse. دعنا نرى كيف يمكن فعل ذلك.

    أولاً، يجب عليك استيراد مكتبة argparse وتعريف المتغيرات اللازمة لتمثيل الوسائط التي تنتظرها الدالة:

    python
    import argparse def main(foo, bar, **kwargs): print('Called myscript with:') print('foo = %s' % foo) print('bar = %s' % bar) if kwargs: for k, v in kwargs.items(): print('keyword argument : %s = %s' % (k, v)) if __name__=="__main__": parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument('foo', type=str, help='an integer for the foo') parser.add_argument('bar', type=str, help='an integer for the bar') args, unknown = parser.parse_known_args() main(args.foo, args.bar, **dict(arg.split('=') for arg in unknown))

    هذا التغيير يعتمد على استخدام argparse لتحديد وتحليل الوسائط الممررة من سطر الأوامر. يتم تحديد معلومات الوسيطات المتوقعة مسبقًا في parser.add_argument()، حيث يحدد البرنامج ما إذا كانت الوسائط مطلوبة أو اختيارية، وما هو نوع البيانات المتوقعة، والمساعدات النصية المرتبطة بها.

    ثم يتم تحليل الوسائط الممررة من خلال parser.parse_known_args()، حيث تمرر الوسائط المحددة إلى دالة main() بالإضافة إلى الوسائط الإضافية (kwargs) التي يتم تحليلها من المتغير unknown باستخدام تحويل نصي إلى قاموس (dictionary comprehension).

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

    المزيد من المعلومات

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

    لفهم كيفية استخدام هذا النمط، دعنا نقدم مثالًا توضيحيًا:

    فرضاً أن لديك برنامج يقوم بمعالجة بيانات نصية، وترغب في تمرير مسار الملف المدخل والملف المخرج كوسائط اسمية. يمكنك القيام بذلك عبر سطر الأوامر كالتالي:

    bash
    python myscript.py input.txt output.txt --delimiter=,

    في هذا المثال، يتم تمرير “input.txt” و “output.txt” كمعاملات مطلوبة، بينما يتم تمرير “delimiter” كوسيط اختياري باستخدام الوسيطة “–” وقيمتها تعيين فاصلة “,”.

    يمكنك بعد ذلك استخدام الوسائط الاسمية داخل الكود بطريقة مريحة كالتالي:

    python
    def main(input_file, output_file, **kwargs): delimiter = kwargs.get('delimiter', '\t') # تحديد قيمة الفاصلة افتراضيًا # الآن يمكنك استخدام input_file و output_file بشكل طبيعي في البرنامج # واستخدام delimiter لتحديد الفاصلة المستخدمة في معالجة البيانات النصية pass

    بهذه الطريقة، يمكنك تعديل وتخصيص سلوك البرنامج بسهولة باستخدام وسائط اسمية عند استدعاءه من سطر الأوامر، مما يزيد من قدرتك على تنفيذ المهام المختلفة بكفاءة ومرونة.

  • تقسيم الخيارات باستخدام argparse في Python

    عند استخدام وحدة argparse في Python لتحليل السطر الأمر الذي يتم تمريره من سطر الأوامر، يمكنك تنظيم الخيارات الخاصة بك في مجموعات باستخدام add_argument_group(). ولكي تحصل على كائنات الـ Namespace المختلفة لكل مجموعة، يمكنك تقسيم التحليل إلى عمليات متعددة.

    أولاً، يجب عليك تحليل السطر الأمر باستخدام parse_args() مرة واحدة فقط. بعد ذلك، يمكنك الوصول إلى الخيارات المحددة لكل مجموعة من خلال الكائن الرئيسي args.

    اليك كيفية القيام بذلك:

    python
    import argparse # تعريف وحدة argparse cmdParser = argparse.ArgumentParser() cmdParser.add_argument('mainArg') # إضافة مجموعة الخيارات الأولى groupOne = cmdParser.add_argument_group('group one') groupOne.add_argument('-optA') groupOne.add_argument('-optB') # إضافة مجموعة الخيارات الثانية groupTwo = cmdParser.add_argument_group('group two') groupTwo.add_argument('-optC') groupTwo.add_argument('-optD') # تحليل السطر الأمر args = cmdParser.parse_args() # الوصول إلى الخيارات الرئيسية main_args = args.mainArg # الوصول إلى الخيارات في مجموعة الخيارات الأولى groupOne_args = argparse.Namespace() for action in groupOne._group_actions: arg = getattr(args, action.dest, None) setattr(groupOne_args, action.dest, arg) # الوصول إلى الخيارات في مجموعة الخيارات الثانية groupTwo_args = argparse.Namespace() for action in groupTwo._group_actions: arg = getattr(args, action.dest, None) setattr(groupTwo_args, action.dest, arg) # الوصول إلى الخيارات العامة (غير متعلقة بأي مجموعة) global_args = argparse.Namespace() for action in cmdParser._actions: if action not in (groupOne._group_actions + groupTwo._group_actions): arg = getattr(args, action.dest, None) setattr(global_args, action.dest, arg) # طباعة النتائج print("Main Args:", main_args) print("Group One Args:", groupOne_args) print("Group Two Args:", groupTwo_args) print("Global Args:", global_args)

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

    المزيد من المعلومات

    بالطبع، سأقدم المزيد من المعلومات حول كيفية تحليل السطر الأمر باستخدام وحدة argparse في Python والحصول على كائنات Namespace لكل مجموعة منفصلة.

    وحدة argparse توفر طريقة مرنة وقوية لتحليل السطر الأمر في برامج Python. تسمح لك بتحديد الخيارات والمعلمات التي يمكن تمريرها عبر سطر الأوامر وتنظيمها بشكل مناسب. تعتبر الإضافة الأكثر استخدامًا لتنظيم الخيارات هي add_argument_group() التي تسمح لك بتجميع الخيارات ذات الصلة معًا في مجموعات.

    في المثال السابق، بدأنا بتحديد وحدة argparse cmdParser وإضافة الخيارات الرئيسية باستخدام add_argument()، ثم قمنا بإنشاء مجموعتين باستخدام add_argument_group() وإضافة الخيارات الخاصة بهما.

    عند استخدام parse_args()، يتم تحليل السطر الأمر وتخزين النتائج في كائن Namespace يُعرف عادة باسم args. ومن هنا، يمكن الوصول إلى قيم الخيارات المحددة باستخدام args.attribute.

    للحصول على الخيارات في كل مجموعة، يمكن استخدام _group_actions التي تحتوي على قائمة بجميع الإجراءات المرتبطة بالمجموعة. ثم يمكن استخدام دورة for للوصول إلى كل إجراء والحصول على قيمه باستخدام getattr() وتعيينها في كائن Namespace جديد.

    يجب أن تلاحظ أننا استخدمنا _group_actions و _actions، وهي متغيرات داخلية للوحدة argparse، والتي يجب استخدامها بحذر وفقًا للوثائق الرسمية للوحدة.

  • استخدام nargs=1 في argparse

    في argparse في Python، يُستخدم nargs=1 عندما ترغب في تحديد أن الخيار يجب أن يقبل وسيطًا واحدًا فقط. على سبيل المثال، إذا كان لديك برنامج يأخذ مدخلات من المستخدم لإضافة ملفات إلى قائمة، يمكنك استخدام nargs=1 للتأكد من أن كل مدخل هو ملف واحد.

    بدون استخدام nargs=1، ستحتاج إلى التحقق يدويًا من الإدخالات المدخلة للتأكد من أنها ملفات واحدة.

    المثال التالي يوضح كيفية استخدام nargs=1 لقبول ملف واحد كإدخال:

    python
    import argparse parser = argparse.ArgumentParser() parser.add_argument('file', nargs=1, help='Path to the file') args = parser.parse_args() file_path = args.file[0] print(f'The file path is: {file_path}')

    باختصار، يتيح لك استخدام nargs=1 تحديد أن الخيار يجب أن يقبل وسيطًا واحدًا فقط، مما يسهل عملية التحقق من الإدخالات واستخدامها في برنامجك.

    المزيد من المعلومات

    بالطبع! في argparse، nargs=1 يضمن أن الخيار يتوقع وسيطًا واحدًا فقط لكل مرة يتم فيها تمرير الخيار. هذا يعني أنه عند استخدام nargs=1، ستحصل دائمًا على قائمة تحتوي على وسيط واحد على الأقل، حتى عند تمرير وسيط واحد فقط.

    على سبيل المقارنة، عندما لا تحدد nargs (أو تحدده بقيمة None)، فإن argparse سيحاول تحويل عدد الوسائط الممررة إلى الخيار إلى عدد من القيم تعتمد على الحالة:

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

    في النهاية، اختيار استخدام nargs=1 أو عدم تحديد nargs يعتمد على متطلبات برنامجك وكيفية تنظيم الإدخالات التي تتوقعها.

  • تحسين تنفيذ سكربتات بايثون وتطوير الأداء

    Certainly, let’s delve into the intricacies of running a Python script without explicitly using the “python” keyword at the beginning and address the issue of the script opening in a text editor instead of running in the console.

    When you aim to execute a Python script directly from the command line without typing “python” before the script name, you are essentially relying on the system’s ability to recognize and execute Python files. This functionality is facilitated by the shebang line.

    The shebang line is a special comment at the beginning of a script that informs the operating system about the interpreter to be used for executing the script. For Python scripts, the shebang line typically looks like this:

    python
    #!/usr/bin/env python

    However, on Windows, the shebang line might not be recognized in the same way as it is on Unix-like systems. Windows relies on file associations to determine how to handle script files.

    To address your specific concern about the script opening in a text editor, it seems like the file association for “.py” files on your system is configured to open in a text editor by default. To change this behavior and ensure that your script runs in the console, follow these steps:

    1. Check File Association:
      Verify the current association for “.py” files on your system. You can do this by right-clicking on a Python script file, selecting “Open with,” and ensuring that the default program is set to the Python interpreter.

    2. Use the Command Line:
      Open a command prompt and navigate to the directory containing your Python script. Once there, type the following command:

      bash
      script.py

      If the shebang line is correctly set, this should execute your script without explicitly using the “python” keyword.

    3. Modify File Association:
      If the file association is set to open in a text editor, you can modify it by right-clicking on a Python script file, selecting “Open with,” choosing “Choose another app,” and then selecting the Python interpreter. Ensure to check the box that says “Always use this app to open .py files.”

    By following these steps, you should be able to run your Python script directly from the command line without encountering issues. Additionally, understanding how file associations work in your operating system contributes to a smoother development experience.

    (باللغة العربية)
    من الواضح أن لديك رغبة في تنفيذ السكربت الخاص بك في بايثون مباشرة من سطر الأوامر دون كتابة كلمة “python” في بدايته. يتم ذلك عن طريق استخدام سطر الشيبانغ.

    سطر الشيبانغ هو تعليق خاص في بداية السكربت يُعلم نظام التشغيل عن المفسر الذي يجب استخدامه لتنفيذ السكربت. في حالة السكربتات بالبايثون، يكون سطر الشيبانغ عادة مشابهًا للتالي:

    python
    #!/usr/bin/env python

    ومع ذلك، في نظام التشغيل ويندوز، قد لا يتم التعرف على سطر الشيبانغ بنفس الطريقة التي يحدث بها في أنظمة يونكس. يعتمد ويندوز على ربط الملفات (File Associations) لتحديد كيفية التعامل مع ملفات السكربت.

    بالنسبة لقضيتك المحددة بفتح السكربت في محرر نصي بدلاً من تشغيله في الوحدة الطرفية، يبدو أن تكوين ارتباط الملفات لامتداد “.py” على نظامك مُكوَّن ليتم فتحه في محرر نصي افتراضي. لتغيير هذا السلوك وضمان تشغيل السكربت في الوحدة الطرفية، يمكنك اتباع الخطوات التالية:

    1. فحص ارتباط الملفات:
      تحقق من الرابط الحالي لامتداد “.py” على نظامك. يمكنك القيام بذلك عن طريق النقر بزر الماوس الأيمن على ملف سكربت بايثون، ثم اختيار “افتح بواسطة”، والتأكد من أن البرنامج الافتراضي مُعين على مفسر بايثون.

    2. استخدام سطر الأوامر:
      افتح نافذة سطر الأوامر وانتقل إلى الدليل الذي يحتوي على السكربت. ثم اكتب الأمر التالي:

      bash
      script.py

      إذا تم تعيين سطر الشيبانغ بشكل صحيح، يجب أن يتم تنفيذ السكربت بدون استخدام كلمة “python” بشكل صريح.

    3. تعديل ارتباط الملف:
      إذا كان ارتباط الملف مُعينًا لفتحه في محرر نصي، يمكنك تعديله بالنقر بزر الماوس الأيمن على ملف سكربت بايثون، ثم اختيار “افتح بواسطة”، واختيار مفسر بايثون. تأكد من تحديد خانة “استخدام هذا التطبيق دائمًا لفتح ملفات .py”.

    من خلال اتباع هذه الخطوات، يجب أن تكون قادرًا على تشغيل سكربتك ببساطة من سطر الأوامر دون مشاكل. بالإضافة إلى ذلك، فإن فهم كيفية عمل ارتباط الملفات في نظام التشغيل يساهم في تجربة تطوير أكثر سلاسة.

    المزيد من المعلومات

    لاشك أن تنفيذ السكربتات بواسطة سطر الأوامر يُسهم في تيسير العمليات التطويرية وتحسين كفاءة العمل. يُمكننا استكمال النقاش حول عدة نقاط أخرى تتعلق بتشغيل السكربتات في بايثون وتحسين أداء عملية التطوير.

    1. إدارة البيئات الافتراضية:
      يُفضل استخدام البيئات الافتراضية (Virtual Environments) في بايثون لتجنب تداخل الحزم وتوفير بيئة عمل منفصلة. يمكن إنشاء بيئة افتراضية باستخدام أداة venv أو virtualenv. ذلك يضمن تنظيمًا أفضل للمشاريع وتفادي تعارض الإصدارات بين الحزم.

      لإنشاء بيئة افتراضية باستخدام venv، يُمكنك استخدام الأمر التالي:

      bash
      python -m venv myenv

      ثم يُمكن تنشيط البيئة باستخدام:

      • في نظام Windows:
        bash
        myenv\Scripts\activate
      • في نظام Unix:
        bash
        source myenv/bin/activate
    2. إدارة الحزم باستخدام pip:
      يمكن استخدام أداة pip لإدارة الحزم في بايثون. يمكن تثبيت الحزم بسهولة باستخدام الأمر pip install، ويمكن تصدير قائمة بالحزم المثبتة إلى ملف باستخدام pip freeze.

      bash
      pip install package_name pip freeze > requirements.txt

      يُمكن استخدام ملف requirements.txt لإعادة تثبيت الحزم على نظام آخر أو في مشروع آخر.

    3. التعامل مع الإدخال من سطر الأوامر:
      يُمكن تحسين السكربتات لتقبل الإدخال من سطر الأوامر باستخدام وحدة argparse في بايثون. تُتيح هذه الوحدة إضافة واجهة سطر الأوامر للسكربت بحيث يُمكن تحديد الخيارات والمعاملات المتوقعة.

      مثال على استخدام argparse:

      python
      import argparse parser = argparse.ArgumentParser(description='Description of your script.') parser.add_argument('input_file', help='Path to the input file.') parser.add_argument('--output', help='Path to the output file.') args = parser.parse_args() # استخدام الخيارات المحددة في السكربت
    4. تحسينات الأداء:
      يمكن اتخاذ تحسينات إضافية لأداء السكربت. على سبيل المثال، يُمكن تجنب فتح الملفات بشكل مباشر واستخدام with لضمان إغلاق الملف بشكل صحيح. أيضًا، يُمكن استخدام هياكل البيانات المناسبة وتنظيم الكود لجعله أكثر قابلية للصيانة.

      python
      with open('input.txt', 'r') as file: data = file.read()

      ويُمكن تطبيق تقنيات البرمجة الشيئية لتنظيم الكود وتحسين قابلية الصيانة.

    5. التوثيق والتعليقات:
      يعزز إضافة توثيق شامل وتعليقات في الكود فهم السكربت لدى المطورين الآخرين ويسهل الصيانة في المستقبل. يُفضل توثيق الوظائف والمتغيرات الرئيسية لتسهيل فهم السياق.

      python
      """ This script performs a specific task. Usage: python script.py --input input.txt --output output.txt """

    باستخدام هذه النصائح، يُمكن تحسين جودة وأداء سكربتات بايثون وجعل عملية التطوير أكثر فعالية وسهولة.

  • تحويل ملفات HTML إلى قاعدة بيانات SQLite بلغة Python

    عند محاولتك لتشغيل السكربت باستخدام الأمر python my_script.py، وجدت نفسك تواجه مشكلة في استخدام السكربت بسبب رسالة الخطأ التي تشير إلى عدم توفر بعض الوسائط اللازمة. يبدو أنك قمت بتعريف واستخدام واجهة سطر الأوامر (Command Line Interface) للبرنامج باستخدام argparse، ولكن هناك بعض الأمور التي يجب تصحيحها في تشغيل البرنامج.

    أولاً، يبدو أنك قمت بتنسيق الكود بطريقة غير صحيحة، لذا سأقدم لك الكود بتنسيق صحيح:

    python
    #!/usr/bin/env python3 # Script to convert HTML files provided by The Online Plain Text English # Dictionary (http://www.mso.anu.edu.au/~ralph/OPTED/) into SQLite database import sys import sqlite3 from argparse import ArgumentParser, FileType from bs4 import BeautifulSoup def parse_args(): parser = ArgumentParser("Create database from HTML dictionary pages") parser.add_argument("files", metavar="file", nargs="+", type=FileType("rb")) parser.add_argument("--out", "-o", required=True) return parser.parse_args() def create_tables(conn): conn.execute("DROP TABLE IF EXISTS words") conn.execute("CREATE TABLE words (id integer primary key, word text, description text)") conn.commit() def words(handle): doc = BeautifulSoup(handle, "html.parser") for p in doc.find_all("p"): if len(p.contents) == 4: word = p.contents[0].string.lower() definition = p.contents[3].lstrip(") ").replace("\n", " ") yield word, definition def insert_words(conn, iter): conn.executemany("INSERT INTO words VALUES (NULL, ?, ?)", iter) def main(): args = parse_args() db = sqlite3.connect(args.out) create_tables(db) for handle in args.files: print("Processing \"{}\"".format(handle.name), file=sys.stderr) insert_words(db, words(handle)) db.commit() db.close() if __name__ == "__main__": main()

    بعد تصحيح التنسيق، يمكنك تشغيل البرنامج بنجاح. يجب عليك تحديد ملفات الإدخال (file [file ...]) والملف الناتج (--out/-o) عند تشغيل البرنامج. على سبيل المثال:

    bash
    python my_script.py input_file1.html input_file2.html --out output_database.db

    يرجى استبدال input_file1.html و input_file2.html بملفات HTML الفعلية التي تريد تحويلها إلى قاعدة بيانات SQLite، واستبدال output_database.db بالاسم الذي تريد لملف قاعدة البيانات الناتج.

    المزيد من المعلومات

    بالطبع، دعنا نستكشف بعض المعلومات الإضافية حول السكربت وكيفية تشغيله.

    السكربت الذي قدمته يستخدم لغة البرمجة Python لتحويل ملفات HTML من مصدر معين، وتحديدًا موقع “The Online Plain Text English Dictionary”، إلى قاعدة بيانات SQLite. يمكن أن يكون ذلك مفيدًا لتخزين الكلمات وتعاريفها بشكل هيكلي وسهل الاستعراض.

    النص الموجود في السكربت يستخدم مكتبة BeautifulSoup لتحليل وفحص ملفات HTML، وهي أداة قوية في Python للتعامل مع تحليل الصفحات HTML والبحث في هيكلها. بعد ذلك، يتم إدراج الكلمات وتعاريفها في قاعدة البيانات SQLite.

    لتشغيل البرنامج بشكل صحيح، يجب عليك استخدام سطر الأوامر مع تحديد الملفات الواردة (file [file ...]) والملف الناتج (--out/-o). يجب أن يكون لديك Python مثبتًا على جهاز الكمبيوتر الخاص بك، ويمكنك تنفيذ الأمر من موجه الأوامر (Command Prompt) أو Terminal.

    على سبيل المثال، يمكنك تنفيذ الأمر التالي:

    bash
    python my_script.py input_file1.html input_file2.html --out output_database.db

    يتم استبدال input_file1.html و input_file2.html بملفات HTML الخاصة بك، و output_database.db بالاسم الذي تريد استخدامه لملف قاعدة البيانات الناتج.

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر