pipsqueaker117
pipsqueaker117

Reputation: 2366

Where does python open files to on a mac?

I made a simple python script which creates a text file. The contents of the script are

f = open("New", "w")
f.close

Now I moved the script to the desktop (I'm on a mac) and ran it, and nothing shows up. No file is created on the desktop that is visible for me.

I actually made this little script because one of my other scripts involves opening/creating a text file and reading from it. I entered the information wrong while in my program forever, and now the entire thing is broken and I cant fix it because I have no idea where it's created the darn text file. I was under the impression that just opening a file with giving it an absolute path would create it in the same directory as the script. I seem to have been mistaken.

I've been launching the script from the terminal with the command

python3 /Users/me/Desktop/script.py

Because of that, I feel like its creating the file somewhere in the python3 install location or within wherever the python3 unix exec is located. I think. Can't check.

Are any of you guys willing to help out?

-pipsqueaker117

EDIT: Here's a link to the big program which broke.

Upvotes: 2

Views: 8268

Answers (4)

dawg
dawg

Reputation: 103998

You can always ask:

import os 

cwd=os.getcwd()
print(cwd)

That will print the directory the file (without a path) will be opened in.

You can change to a specific directory (in Python) this way:

import os 

try:
    os.chdir('/Users/me/Desktop')
except OSError as e:
    print e

Upvotes: 2

Roland Smith
Roland Smith

Reputation: 43513

You should modify your program to change the working directory (before you write the file) to the place where you want files to show up.

import os
os.chdir('/Users/me/Desktop') # or whatever

This should be a directory where you have permission to write files.

Upvotes: 2

Jean
Jean

Reputation: 7673

Your file will be created in the current directory (most probably in /Users/me/ if you just opened the terminal)

Try:

cd /Users/me/Desktop/
python3 /Users/me/Desktop/script.py

Upvotes: 5

mipadi
mipadi

Reputation: 410912

It'll be created in the current working directory, which is the directory from which you called the script.

Upvotes: 8

Related Questions