كيف يمكنني تشغيل مثيل لتطبيق باستخدام بايثون؟

StackOverflow https://stackoverflow.com/questions/247724

  •  05-07-2019
  •  | 
  •  

سؤال

أقوم بإنشاء برنامج نصي بلغة Python حيث يقوم بمجموعة من المهام وإحدى هذه المهام هي تشغيل وفتح مثيل لبرنامج Excel.ما هي الطريقة المثالية لتحقيق ذلك في النص الخاص بي؟

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

المحلول

وعلى الرغم من أن الإجابات Popen معقولة للحالة العامة، أود أن أوصي win32api لهذه الحالة المحددة، إذا كنت تريد أن تفعل شيئا مفيدا معها:

ووغني عن شيء مثل هذا:

from win32com.client import Dispatch
xl = Dispatch('Excel.Application')
wb = xl.Workbooks.Open('C:\\Documents and Settings\\GradeBook.xls')
xl.Visible = True    # optional: if you want to see the spreadsheet

قائمة بريدية آخر لكن وهناك الكثير من الأمثلة حولها.

نصائح أخرى

أو

os.system("start excel.exe <path/to/file>")

و(بافتراض انها في الطريق، وكنت على ويندوز)

ووأيضا على ويندوز، مجرد أعمال start <filename>، وأيضا - اذا كان امتدادا المرتبطة بالفعل (كما XLS سيكون)

وأنا أحب popen2 عن القدرة على مراقبة العملية.

excelProcess = popen2.Popen4("start excel %s" % (excelFile))
status = excelProcess.wait()

http://www.python.org/doc/ 2.5.2 / ليب / وحدة-popen2.html

تعديل : لتكون على علم بأن يدعو الانتظار () ومنع حتى تعود العملية. اعتمادا على السيناريو الخاص بك، وهذا قد لا يكون السلوك المطلوب.

ال عملية فرعية تهدف الوحدة إلى استبدال العديد من الوحدات والوظائف القديمة الأخرى، مثل:

  • os.system
  • نظام التشغيل*
  • نظام التشغيل.بوبين*
  • بوبين2.*
  • الأوامر.*

.

import subprocess

process_one = subprocess.Popen(['gqview', '/home/toto/my_images'])

print process_one.pid

وكما قال آخرون، أود أن أقترح os.system. في حال تبحث أي شخص عن حل ماك متوافقة، وهنا مثال:

import os
os.system("open /Applications/Safari.app")

وos.system ( "file.xls المفتوح")

وأنا أحب os.startfile("path to file") لأنه يفتح الملف كما لو كنت قد نقرت نقرا مزدوجا لفتح.

وجدت أنه مع os.system("start excel filename") افتتاحه وكأنه ملف فتح من شبكة الإنترنت، وكان لديك لتمكين التحرير.

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