python не ищет файл в правильном каталоге

#python #file #directory

#python #файл #каталог

Вопрос:

Я пытаюсь открыть файл png, который находится в том же каталоге, что и мой скрипт. Как и любой другой, я использовал os.path(), но по какой-то причине я получил сообщение об ошибке, в котором говорится, что файл не существует. Итак, я запустил этот код, чтобы показать мне, на что смотрел «путь».

 from os import scandir

for i in scandir():
print(i.name)
  

К моему удивлению, я получаю это в результате:

 .android
.AndroidStudio3.5
.atom
.CocosCreator
.conda
.config
.dotnet
.idlerc
.ipython
.jupyter
.MCTranscodingSDK
.node_repl_history
.openshot_qt
.Origin
.PyCharmCE2019.3
.pylint.d
.QtWebEngineProcess
.templateengine
.thumbnails
.vscode
3D Objects
ansel
AppData
Apple
Application Data
Book1.xlsx
Calibre Library
Contacts
Cookies
Desktop
Documents
Downloads
Favorites
hello_world.xlsx
IntelGraphicsProfiles
Links
Local Settings
MicrosoftEdgeBackups
MostUsedSong.xlsx
Music
My Documents
NetHood
NTUSER.DAT
ntuser.dat.LOG1
ntuser.dat.LOG2
NTUSER.DAT{314cef2d-cea4-11ea-86b3-c37284cf2d52}.TxR.0.regtrans-ms
NTUSER.DAT{314cef2d-cea4-11ea-86b3-c37284cf2d52}.TxR.1.regtrans-ms
NTUSER.DAT{314cef2d-cea4-11ea-86b3-c37284cf2d52}.TxR.2.regtrans-ms
NTUSER.DAT{314cef2d-cea4-11ea-86b3-c37284cf2d52}.TxR.blf
NTUSER.DAT{314cef2e-cea4-11ea-86b3-c37284cf2d52}.TM.blf
NTUSER.DAT{314cef2e-cea4-11ea-86b3-c37284cf2d52}.TMContainer00000000000000000001.regtrans-ms
NTUSER.DAT{314cef2e-cea4-11ea-86b3-c37284cf2d52}.TMContainer00000000000000000002.regtrans-ms
ntuser.ini
OneDrive
Pictures
PrintHood
PycharmProjects
Recent
Saved Games
Searches
SendTo
Songs.xlsx
source
Start Menu
Templates
Videos
  

Это означает, что python просматривает каталог, в котором он установлен, а не каталог, в котором находится мой файл. Является ли это параметром по умолчанию, и если да, то как я могу изменить его на папку, в которой находится мой проект? Кроме того, я не могу использовать абсолютный путь, потому что я отправлю эту папку кому-то другому, и у них не будет такой же файловой структуры, как у меня.

Комментарии:

1. По умолчанию используется текущая папка, в которой вы запускаете свой скрипт

2. вы можете использовать os.cwd для получения текущего каталога. а затем создайте подходящий путь.

3. @Tarik Тогда почему я получаю корневую папку python?

4. Предполагая, что вы находитесь в командной строке в папке, в которой находится ваш скрипт, затем выдайте python your script.py , что вы получите материал в своей папке.

5. @Tarik Я использую VS Code для запуска скрипта