Skip to content Skip to sidebar Skip to footer

How To Open A File In Subprocess On Mac Osx

I want to open a file and wait the execution of next instruction till file is not closed. I followed the link How to open a file on mac OSX 10.8.2 in python python but it didn't wo

Solution 1:

Try saving this as "EditOneAndQuit" and then do:

chmod +x EditOneAndQuit

Then start that from Python:

#!/bin/bash# Start textedit in background
open "$1" &

# Wait till textedit has zero documents openwhiletruedosleep 1
docs=`osascript -e 'tell application "textedit" to get documents'`
if [ -z "$docs" ]; then# Kill off poor old textedit
    osascript -e 'tell application "textedit" to quit'exitfidone

Try it from the shell first, by creating a document and editing it:

ls > fred.txt
./OpenOneAndQuit fred.txt

you should see that the script, along with textedit, exits when you close the document by clicking the red button.

Solution 2:

Closing the file does not end the process, as you will see that the editor is still running at the top of the screen when you close the file.

Press "Cmd+Q" to exit the process.

As it seems you cannot get your users to differentiate between closing documents and closing applications, I can only suggest something VERY UGLY. Can you start another background process that uses Applescript to wait till "textedit" starts, then ask "textedit" for a list of the documents it has open. Sleep for a few seconds if there are some, then check again. When there are none, it could tell "textedit" to exit and exit itself too.

The Applescript to do this looks like this.

tell app "TextEdit"toget documents

You may need to use "osascript" to get Python to execute Applescript.

Post a Comment for "How To Open A File In Subprocess On Mac Osx"