@ChainikPythonovski
Чайник

Почему PyCharm и VS code по-разному реагируют на одинаковые файлы?

pocker_test.py:

import Pocker
Pocker.TexasHoldem ( )

И Pocker.py:

def TexasHoldem ( MibBet = 200, MaxBet = 2500 ) :

# get token
GetToken = open('Token.txt', 'r')
Token = GetToken.readline()
GetToken.close

print(f'Token ----> {Token}')

# Generating Card Deck

CardsSpades = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
CardsClubs = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
CardsDimonds = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
CardsHearts = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']

print ( MaxBet, MibBet,'\n\n\n' )
print( CardsClubs, CardsDimonds, CardsHearts, CardsSpades )
print( '----------------------------------------------' )

И txt файл, где написан токен

Почему при запуске Pocker.py через PyCharm все выводится, а vs code выдает следующюю ошибку:

GetToken = open('Token.txt', 'r')
FileNotFoundError: [Errno 2] No such file or directory: 'Token.txt'
(venv) PS C:\Users\Woolf\Desktop\inopolis> & c:/Users/Woolf/Desktop/inopolis/venv/Scripts/python.exe c:/Users/Woolf/Desktop/inopolis/2023/PockerBot/pocker_test.py
Traceback (most recent call last):
File "c:\Users\Woolf\Desktop\inopolis\2023\PockerBot\pocker_test.py", line 5, in
Pocker.TexasHoldem ( )
File "c:\Users\Woolf\Desktop\inopolis\2023\PockerBot\Pocker.py", line 18, in TexasHoldem
GetToken = open('Token.txt', 'r')
FileNotFoundError: [Errno 2] No such file or directory: 'Token.txt'
(venv) PS C:\Users\Woolf\Desktop\inopolis> & c:/Users/Woolf/Desktop/inopolis/venv/Scripts/python.exe c:/Users/Woolf/Desktop/inopolis/2023/PockerBot/pocker_test.py
Traceback (most recent call last):
File "c:\Users\Woolf\Desktop\inopolis\2023\PockerBot\pocker_test.py", line 5, in
Pocker.TexasHoldem ( )
File "c:\Users\Woolf\Desktop\inopolis\2023\PockerBot\Pocker.py", line 18, in TexasHoldem
GetToken = open('Token.txt', 'r')
FileNotFoundError: [Errno 2] No such file or directory: 'Token.txt'
(venv) PS C:\Users\Woolf\Desktop\inopolis>

PS:
Pytnin в vs code установлен
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
Почитай, что такое относительный путь, и что такое рабочий каталог.
Это, на минуточку, школьный курс информатики.

Ты указываешь относительный путь к файлу при открытии, поэтому путь разрешается относительно текущего рабочего каталога. Разные IDE могут указывать разные каталоги как рабочие при запуске скрипта, не говоря уже о том, что при запуске скрипта из терминала рабочим может быть любой каталог.
А ещё рабочий каталог может меняться во время работы скрипта.

Так что если тебе нужен путь к файлу именно рядом со скриптом, строй этот путь сам, используя модули sys и pathlib (ну или os.path, если по-старинке).
import sys
import pathlib
# каталог, в котором лежит скрипт
APP_DIR = pathlib.Path(sys.argv[0]).parent.resolve()
# файл в этом каталоге
my_file_path = APP_DIR / 'Token.txt'  

with my_file_path.open('rt') as f:  # получаем файловый объект, как обычно
    data = f.read()
Ответ написан
Комментировать
@igor6130
А вы переводили сообщение об ошибке? Там прямо сказано, что файла Token.txt в том месте, из которого вы пытаетесь его открыть, нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы