Tôi đang tạo một kịch bản Python, nơi nó thực hiện một loạt các nhiệm vụ và một trong những nhiệm vụ đó là khởi chạy và mở một thể hiện của Excel. Cách lý tưởng để hoàn thành điều đó trong kịch bản của tôi là gì?Làm cách nào để khởi chạy phiên bản ứng dụng bằng Python?
Trả lời
Trong khi Popen
câu trả lời là hợp lý đối với trường hợp chung, tôi muốn giới thiệu win32api
cho trường hợp cụ thể này, nếu bạn muốn làm một cái gì đó hữu ích với nó:
Nó đi một cái gì đó như thế này:
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
Lấy từ a mailing list post nhưng có rất nhiều ví dụ xung quanh.
Nếu bạn muốn xem bảng tính excel, bạn cần thêm xl.Visible = True – panofish
hoặc
os.system("start excel.exe <path/to/file>")
(giả sử nó trong đường dẫn, và bạn đang trên cửa sổ)
và cũng trên Windows, chỉ cần start <filename>
cũng hoạt động - nếu đó là tiện ích được liên kết đã có (dưới dạng xls) là
Lưu ý rằng trên Windows, bạn sẽ thấy cửa sổ cmd nhanh chóng mở và đóng nếu bạn 'os.system()'. IMHO tốt hơn nên sử dụng 'os.startfile()'. – 10basetom
Tôi thích popen2 để có thể theo dõi quá trình.
excelProcess = popen2.Popen4("start excel %s" % (excelFile))
status = excelProcess.wait()
http://www.python.org/doc/2.5.2/lib/module-popen2.html
EDIT: lưu ý rằng gọi wait() sẽ chặn cho đến khi quá trình hồi hương. Tùy thuộc vào tập lệnh của bạn, đây có thể không phải là hành vi mong muốn của bạn.
Các subprocess mô-đun có ý định thay thế một số khác, mô-đun lớn tuổi và chức năng, chẳng hạn như:
- os.system
- os.spawn *
- os.popen *
- popen2 . *
- lệnh. *
.
import subprocess
process_one = subprocess.Popen(['gqview', '/home/toto/my_images'])
print process_one.pid
Như những người khác đã nêu, tôi sẽ đề xuất os.system. Trong trường hợp bất cứ ai đang tìm kiếm một giải pháp Mac tương thích, đây là một ví dụ:
import os
os.system("open /Applications/Safari.app")
- 1. Làm cách nào để chạy nhiều phiên bản bằng cách sử dụng Backbone.Paginator.js?
- 2. Làm cách nào để chạy một phiên bản ứng dụng web trong khi phát triển phiên bản tiếp theo?
- 3. Làm cách nào để khởi chạy ipython từ trình bao, bằng cách chạy 'python ...'?
- 4. Làm cách nào để thay đổi phiên bản xcode mặc định được khởi chạy ...?
- 5. Làm cách nào để khởi chạy ứng dụng android trong ứng dụng của tôi trong Android?
- 6. Làm cách nào để khởi chạy ứng dụng từ một ứng dụng khác trong C#?
- 7. Làm cách nào để gỡ lỗi ứng dụng py2exe 'không thể khởi chạy đúng'?
- 8. Làm cách nào để khởi chạy ứng dụng khi khởi động hệ thống? (Mac OSX, Cocoa)
- 9. Ngăn chặn khởi chạy nhiều phiên bản của một ứng dụng java
- 10. khởi chạy ứng dụng, chụp stdout và stderr bằng C++
- 11. làm thế nào để chạy easy_install sử dụng một phiên bản python cụ thể
- 12. Cách phát hiện phiên bản Mac OS bằng Python?
- 13. exe nhỏ để khởi chạy một ứng dụng java
- 14. android nghe để khởi chạy ứng dụng
- 15. cách kiểm tra phiên bản jre bằng ứng dụng java
- 16. Làm cách nào để tải phiên bản đã xuất bản hiện tại trong ứng dụng .NET?
- 17. Làm cách nào để biết phiên bản ứng dụng đường ray nào đang sử dụng
- 18. Khởi chạy ứng dụng của tôi bằng URI mục đích
- 19. Cách khởi chạy ứng dụng từ trình duyệt?
- 20. Khởi chạy ứng dụng (.EXE) từ C#?
- 21. Cách khởi chạy ứng dụng Youtube để mở kênh?
- 22. Làm thế nào để chạy ứng dụng Android trên trình phát ứng dụng Bluestack bằng Eclipse?
- 23. Khởi động lại phiên bản SQL Server bằng SMO
- 24. Làm cách nào để nén nội dung của thư mục bằng python (phiên bản 2.5)?
- 25. Làm cách nào để khởi chạy ứng dụng email trên sự kiện nhấp chuột của LinkButton?
- 26. Làm cách nào để khởi chạy một ứng dụng cụ thể theo chương trình trong Android?
- 27. iPhone/iPad. Làm cách nào để khởi chạy ứng dụng từ liên kết trong Safari?
- 28. Làm cách nào để khởi chạy ứng dụng email có trường "tới" được điền trước?
- 29. Làm cách nào để buộc iPython sử dụng phiên bản cũ hơn của Python?
- 30. khởi chạy ứng dụng facebook từ ứng dụng khác
ipc - http://en.wikipedia.org/wiki/Inter-process_communication – warren