Некоторое время я использовал стандартный Python IDLE, который отлично работал, но я только что загрузил VS Code и, хотя это явное обновление, я заметил проблему с ним, особенно с базами данных и текстовыми файлами.
Я создал простую программу, которая записывает в текстовый файл, а затем читает из него:
def writeText():
textFile = open("test.txt","w")
textFile.write("test")
textFile.close()
def readText():
textFile = open("test.txt","r")
store = textFile.readlines()
print(store)
writeText()
readText()
Первая процедура должна создать test.txt и записать в него, а вторая процедура распечатает строки из него.
Когда я запускаю программу в VS Code, вывод правильный. Однако, когда я проверяю свой файловый каталог, текстовый файл с именем test.txt отсутствует, и все же он может выводиться правильно.
Когда я запускаю этот код в Python IDLE, он правильно создает текстовый файл.
Может ли кто-нибудь помочь мне разобраться в этом? Спасибо
@kabanus Да, я поискал в каталоге, но его там нет. Когда я запустил код с Python IDLE, он создал текстовый файл в каталоге. Я не уверен, где еще это могло быть, но попробую поискать в каталоге VS Code.
Попробуйте распечатать os.getcwd()
перед открытием файла - и посмотрите, где он якобы создается по умолчанию.
Я пробовал с этой настройкой в launch.json
{
"name": "Python: Current File (Integrated Terminal)",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/abc.py",
"console": "integratedTerminal"
},
где abc.py
- это файл, который вы написали, и он работал нормально и создал файл, как ожидалось:
Извините, если это звучит очень глупо, я новичок в VS Code, например, несколько часов новенького, но нужно ли мне редактировать файл launch.json с этим? Спасибо
Вы можете прочитать инструкции здесь code.visualstudio.com/docs/editor/debugging или вы можете напрямую отредактировать этот файл внутри <your project>/.vscode/launch.json
. Если этот ответ поможет вам решить вашу проблему, отметьте его как принятый ответ.
Хорошо, похоже, это сработало! Большое тебе спасибо. Я просто ввел «workspaceFolder» без конкретного имени файла, и, похоже, он работал с любым файлом в моем каталоге. Если бы я запускал файл python в другой папке, нужно ли было бы создавать и редактировать launch.json и для этой папки?
Я так не думаю. workspaceFolder
- это корень вашего проекта / рабочего пространства. Таким образом, вы можете указать относительный путь к этому файлу python в другой папке для его запуска.
Ах да, теперь я понимаю. Спасибо за вашу помощь!
Я не являюсь профессионалом VS, но если
print
работает, я предполагаю, что файл был где-то создан - возможно, выполните поиск в каталоге проекта. Обратите внимание, что вы забыли закрыть файл вreadText
- подумайте об использованииwith open(...
в целом.