Question: Opening a file available in present working directory's temp folder in python

I tried 

```
pwdir=os.getcwd()
tempdir=pwdir+"/temp/test.txt"
f=open(tempdir,'r+')

```

When I print the path of tempdir, it is showing up correctly and also the contents of file are also read.

When I try to combine this operation from an Applescript, which calls this python script. I get an error like this

```
f=open(pwdir1,'r+')
IOError: [Errno 2] No such file or directory: '//temp/test.txt'" number 1

```

EDIT:

I am using Shell script from Applescript to call this pythonscript

```
do shell script "/Users/mymac/Documents/'Microsoft User Data'/test.py"

```

EDIT:

Python Code:

```
tempdir = os.path.join(os.getcwd(),'temp','htmlinput.html')
print tempdir
with open(tempdir) as f:
    html=f.read()

```

Python output from terminal:(works perfectly fine)

```
/Users/mymac/Documents/Microsoft User Data/Outlook Script Menu Items/temp/htmlinput.html

```

I am also able to see the file contents.

Applescript Code:

```
do shell script "/Users/mymac/Documents/'Microsoft User Data'/'Outlook Script Menu Items'/new.py"

```

Applescript Error:

```
error "Microsoft Outlook got an error: Traceback (most recent call last):
  File \"/Users/mymac/Documents/Microsoft User Data/Outlook Script Menu Items/new.py\", line 12, in <module>
    with open(tempdir) as f:
IOError: [Errno 2] No such file or directory: '/temp/htmlinput.html'" number 1

```

Answer: 
I don't know Applescript -- or OS X in general. It looks like the script is being run from the root folder, and os.getcwd() returns '/'. The directory of the script itself is `sys.path[0]` or the dirname of the current module -- `dirname(__file__)` -- if it's a single script instead of a package. Try one of the following 

```
import os, sys
tempdir = os.path.join(sys.path[0], 'temp', 'temp.txt') 

```

or 

```
import os
tempdir = os.path.join(os.path.dirname(__file__), 'temp', 'temp.txt')

```
The double slash is your problem. The right way to join file and path names in Python is with `os.path.join`. Try:

```
tempdir = os.path.join(os.getcwd(), 'temp', 'test.txt')

```

Also, you should probably be doing:

```
with open(tempdir) as f:

```

which will make sure tempdir gets closed even if you have an error.

Edit:

We need to see what `tempdir` is when the script is invoked by the AppleScript, not when it is invoked from the terminal. If you do

```
tempdir = os.path.join(os.getcwd(),'temp','htmlinput.html')
with open('/Users/mymac/Documents/temp.txt', 'w') as fwrite:
    fwrite.write(tempdir)

```

What exactly ends up in the file `/Users/mymac/Documents/temp.txt`?