#python #file #pycharm #write
#python #файл #pycharm
Вопрос:
Я все еще новичок в python, и мне трудно понять, почему мой py-файл не записывает текст, когда я запускаю его .py-файл. Но всякий раз, когда я запускаю его на pycharm, он всегда работает. Я также перепробовал много вариантов при записи в файл, и он все равно ничего не запишет в файл, если я не запущу его в Pycharm. Я что-то упускаю? пожалуйста, нужна помощь
здесь файл .py сообщает, что всякий раз, когда я запускаю это, ничего не происходит
path = 'wifipasswords.txt'
my_open = open(path, 'w ')
my_open.write(final_output)
print(final_output)
my_open.close()
//MY attempts
# with open("wifipasswords.txt", "w") as f:
# print(final_output, file=f)
# pathlib.Path("wifipasswords.txt").write_text(final_output)
# with open("wifipasswords.txt", "w") as f:
# f.write(final_output)
# file = open("wifipasswords.txt", "w")
# file.write(final_output)
# file.close()
Комментарии:
1. Вы получаете сообщение об ошибке при попытке его запуска?
Ответ №1:
Это почти наверняка проблема вашего рабочего каталога. Расположение скрипта не означает, что именно там будет создан файл, и вы, вероятно, ищете не в том месте для результирующего файла. Добавьте строку в свой скрипт:
import os
print(os.getcwd())
затем проверьте, находится ли wifipasswords.txt
он в этом каталоге (он должен быть). Если вы хотите явно поместить файл в тот же каталог, что и скрипт (вообще не очень хорошая идея, поскольку скрипты часто устанавливаются в защищенных местах, но подходят для личного использования), вы можете явно изменить рабочий каталог с помощью чего-то вроде:
import os
import os.path
os.chdir(os.path.dirname(__file__))
или явно укажите имя файла без изменения вашего рабочего каталога, например:
path = os.path.join(os.path.dirname(__file__), 'wifipasswords.txt')
Комментарии:
1. @newbeeSyntax: Всегда пожалуйста. Я бы посоветовал также выполнить первую проверку и выяснить, где еще в вашей файловой системе вы сбрасывали свои пароли. Или просто выполните поиск по всему диску, поскольку вы, возможно, сбросили их в нескольких местах. 🙂
2. Буквально просто добавьте
import os
иprint(os.getcwd())
в самый верх вашего файла (раньшеchdir
, если вы использовали такой подход), чтобы увидеть, куда он идет. Если вы имеете в виду, как выполнить поиск по всему вашему диску, в Windows вcmd.exe
сеансе, сделайтеC:
(или на любом другом диске, который вы хотите найти),cd
, тогдаdir /s /b wifipasswords.txt
. В большинстве других UNIX-системfind / -type f -name wifipasswords.txt
это сделает. В обоих случаях это может занять некоторое время, но вы можете просто позволить ему запуститься и проверить позже.3. он говорит int th C:WINDOWSSystem32 и я попробовал это в cmd C:WINDOWSSystem32 cd /dir s wifipasswords.txt как бы там ни было сказано в cmd ‘C:WINDOWSSystem32 ‘не распознается как внутренняя или внешняя команда, работоспособная программа или пакетный файл. Я просто очень ценю вашу помощь, чувак, я надеюсь, что смогу проголосовать сейчас за повышение, но я все еще не могу, так как это только мой первый раз, когда я здесь. ХАХАХАХ, черт возьми, чувак
4. @newbeeSyntax: вам нужно запускать каждый компонент отдельно. Итак, откройте
cmd.exe
, затем в результирующем окне введите каждую команду, нажмите Enter, один за другим, чтобы найти файлы. Когда вы их найдете, вам, вероятно, будет проще использовать обычный проводник папок, чтобы добраться до каждого каталога и удалить их, хотя, если вам это удобно, запускdel C:WINDOWSSystem32wifipasswords.txt
(или любой другой полный путь изdir
возвращенного) также будет работать.
Ответ №2:
Убедитесь, что:
- вы используете python main .py
- что у вас не установлены python2 и python3 вместе, в результате чего, возможно, «python.exe » переменная in PATH на самом деле является python2. Если вы это сделаете, отредактируйте переменную path .
Комментарии:
1. я использовал только python 3.8 и ничего больше, поскольку я использую его впервые, я просто не понимаю, почему он работает на pycharm, но не на его фактическом exe-файле :/
2. я также попробовал запустить его в консоли python 3.8. Он печатает результат, но не просто записывает его в файл, а :/