Caue Zanat
Caue Zanat

Reputation: 37

how to create a file in the code directory in python

I'm making this code that creates a file and writes on it, but i need this file do be created in the same folder that the .py file is located, because i'll need to send this to my profesor , so it need to be kinda of "customized" acording to where he'll download it. Currently, i'm working with this:

arquivo= open('C:\\Users\\cauej\\code\\PROJETO PY\\pedido.txt', 'w')

but i imagine that it wouldn't work on his computer, because it's using my director, but if the file were created in the same folder as the .py file, would work

Upvotes: 0

Views: 102

Answers (3)

razmikarm
razmikarm

Reputation: 1

In your case, you gave an absolute path, which starts from C:\ drive and includes all the parent folders of the file. It always works and mentions the same file, no matter where you are currently locating.

There is also a relative path which can be given by telling the path, that starts from the directory you are currently in. You can assume that it automatically uses path of current working directory as a prefix and generates an absoulte path, like this current working directory + given path to file.

So I guess you need to write like this:

arquivo= open('pedido.txt', 'w')

Upvotes: 0

Eduardo Lella
Eduardo Lella

Reputation: 1

with getcwd() you can get the location of the .py file. Append the name of the output file to it:

import os directory = os.getcwd()

output_file_name = directory + "pedido.txt"

Upvotes: 0

jfaccioni
jfaccioni

Reputation: 7519

You can use the answers from this question to get the path where the script is running, then use that path to write the file:

import os

dir_with_script = os.path.abspath(os.path.dirname(__file__))
path_to_file = os.path.join(dir_with_script, 'pedido.txt')

arquivo = open(path_to_file, 'w')
# ...

Upvotes: 1

Related Questions