PyCharm current working directory

98,369

Solution 1

I have Pycharm 4.5, so things might have changed a bit.

Try going to Settings > Project > Project Structure

On this dialog, click your folder that has the source code in it, and then click the blue folder in the menu to note it as "source" folder. I believe this fixes a lot of the path issues in Pycharm

Here is the link to "content roots": https://www.jetbrains.com/pycharm/help/content-root.html

Solution 2

Change: Run > Edit Configurations > Working directory, which sets the working directory for a specific project. (This is on a Mac)

Solution 3

Current version 2019.2 somehow ignores "source root" from the "project structure". Here's how to actually enforce it:

Run -> Edit Configurations -> Python -> "Edit Templates" this buttin -> fill out "Working Directory"

Solution 4

__file__ refers to file path. So you can use the following to refer file in the same directory:

import os

dirpath = os.path.dirname(__file__)
filepath = os.path.join(dirpath, 'test.txt')
open(filepath, 'r')

Solution 5

In PyCharm, click on "run/edit configurations..."

Then find your script file in the "Python" dropdown menu. Check the "Working Directory" entry and change it if necessary.

Share:
98,369

Related videos on Youtube

qwertyuip9
Author by

qwertyuip9

Student and started learning programming as a hobby (Python was my first language).

Updated on July 09, 2022

Comments

  • qwertyuip9
    qwertyuip9 almost 2 years

    Recently, I'm unable to use relative paths in my code while using PyCharm. For instance, a simple open('test.txt', 'r') will not work - whereupon I am sure the file exists in the same level as the running py file. PyCharm will return this error.

    FileNotFoundError: [Errno 2] No such file or directory:

    After reading answers online on StackOverflow, I have tried multiple options including:

    • Changing test.txt to ./test.txt
    • Closing project, deleting the .idea folder, open the folder with code.
    • Reinstalling as well as installing the latest version of PyCharm.
    • Invalidating caches and restarting.

    None of these options have worked for me. Is there someway I can tell PyCharm to refresh the current working directory (or even to see where it thinks the current working directory is)?

    Thanks in advance!

    Edit: I should note that running the script in a terminal window will work. This appears to be a problem with PyCharm and not the script.

    • Dan
      Dan over 8 years
      you can put this in your script to see the current working directory import os print(os.getcwd())
    • qwertyuip9
      qwertyuip9 over 8 years
      Interesting, it says that it's at C:\Program Files (x86)\JetBrains\PyCharm 5.0.2\jre\jre\bin
    • Dan
      Dan over 8 years
      Are you running with elevated permissions on the command line? If you are on a Unix like system then you should check your permissions for the file
    • Dan
      Dan over 8 years
      nvm, you are on windows :)
  • Dan
    Dan over 8 years
    I like your solution better than mine :) I was trying to keep it at the Pycharm level though haha
  • qwertyuip9
    qwertyuip9 over 8 years
    It was a similar fix that I just found (link here), I had to add the working directory by clicking on the project name on the top right and editing its configurations. It seems counter intuitive to have to add this extra step - perhaps there was some issues in creating the project in the first place. I'll marks yours as correct since it was the closest!
  • qwertyuip9
    qwertyuip9 over 8 years
    Thanks! My problem was more focused in PyCharm but good to know that I could use the os module too!
  • davidA
    davidA over 7 years
    Sadly this didn't work for me on OSX - even though I had the root of my project set as a Source folder, where my script is, the Runner was unable to locate the script. The only solution I found was @andere's below, where you explicitly set the working directory to the absolute path. I'm not sure if this breaks when the project is moved...
  • Dan
    Dan over 7 years
    @meowsqueak Glad you worked it out... With your problem I also typically us os.chir(directory_path) using a directory path i split from __file__. Doing that helps when running the script outside of an IDE and in the event that the script is called from a directory other than where the script and text file is located.
  • enigmq
    enigmq over 4 years
    +1. This solution solved my problem. What happened: I had a project folder with some python files that worked with paths (reading files and stuff). Than I pulled, new directory from github, and moved those python files to new folder. Working Directory stayed as old one. So this solution solved it, thanks :)
  • Alon Samuel
    Alon Samuel about 4 years
    Thanks!!! I used to change manually the working directory for each file :) Didn't know there was a template