سؤال

أرغب في سحب وإفلات ملف البيانات الخاص بي في برنامج Python النصي وجعله يعالج الملف وينتج المخرجات.يقبل البرنامج النصي Python اسم ملف البيانات كمعلمة سطر أوامر، لكن Windows Explorer لا يسمح للبرنامج النصي بأن يكون هدفًا للإسقاط.

هل هناك نوع من التكوين الذي يجب القيام به في مكان ما لهذا العمل؟

هل كانت مفيدة؟

المحلول

بالتأكيد.من مقالة تقنية طائشة تسمى "جعل نصوص بايثون قابلة للإسقاط في نظام التشغيل Windows", ، يمكنك إضافة معالج الإفلات عن طريق إضافة مفتاح التسجيل:

إليك ملف استيراد التسجيل الذي يمكنك استخدامه للقيام بذلك.انسخ ما يلي إلى ملف .reg وقم بتشغيله (تأكد من تعيين امتدادات .py إلى python.file).

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Python.File\shellex\DropHandler]
@="{60254CA5-953B-11CF-8C96-00AA00B8708C}"

وهذا يجعل نصوص بايثون تستخدم معالج إسقاط WSH، المتوافق مع أسماء الملفات الطويلة.لاستخدام معالج اسم الملف القصير، استبدل GUID بـ 86C86720-42A0-1069-A2E8-08002B30309D.

يشير التعليق في هذا المنشور إلى أنه يمكن تمكين إسقاط "لا توجد ملفات Python لوحدة التحكم (.pyw)" أو "ملفات بايثون المجمعة (.pyc)" باستخدام Python.NoConFile و Python.CompiledFile الطبقات.

نصائح أخرى

اكتب نصًا برمجيًا بسيطًا (file.bat)

"C:\python27\python.exe" yourprogram.py %*

أين %* يرمز إلى جميع الوسائط التي تمررها إلى البرنامج النصي.

الآن قم بسحب وإسقاط الملفات المستهدفة على ملف file.bat أيقونة.

باستخدام برنامج python المثبت - على الأقل 2.6.1 - يمكنك فقط سحب وإفلات أي ملف على برنامج python النصي.

import sys
droppedFile = sys.argv[1]
print droppedFile

sys.argv[0] هو البرنامج النصي نفسه. sys.argv[n+1] هي الملفات التي أسقطتها.

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

قم بإنشاء اختصار للملف.في حالة عدم وجود ملفات python المفتوحة .py افتراضيًا، انتقل إلى خصائص الاختصار وقم بتحرير هدف الاختصار ليشمل إصدار python الذي تستخدمه.على سبيل المثال:

هدف:C:\Python26\python.exe <مسار هدف الاختصار>

أقوم بنشر هذا لأنني لم أرغب في تحرير السجل ولم يعمل الحل البديل .bat بالنسبة لي.

1).إنشاء اختصار لـ .py
2).انقر بزر الماوس الأيمن -> الخصائص
3).البادئة "Target:" مع "python" بحيث تقوم بتشغيل .py كوسيطة في أمر python
أو
1).إنشاء .bat
2).بايثون some.py %*

تعتبر إصدارات الاختصار هذه هي الأسهل بالنسبة لي للقيام بما أفعله
وإلا سأقوم بتحويله إلى ملف exe، لكني أفضل استخدام Java أو c/c++ فقط

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top