Не могу записывать файлы на python, когда я запускаю его в файле .py. Но когда я запускаю его в pycharm, он действительно работает

#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:

Убедитесь, что:

  1. вы используете python main .py
  2. что у вас не установлены python2 и python3 вместе, в результате чего, возможно, «python.exe » переменная in PATH на самом деле является python2. Если вы это сделаете, отредактируйте переменную path .

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

1. я использовал только python 3.8 и ничего больше, поскольку я использую его впервые, я просто не понимаю, почему он работает на pycharm, но не на его фактическом exe-файле :/

2. я также попробовал запустить его в консоли python 3.8. Он печатает результат, но не просто записывает его в файл, а :/