open ("text.txt", "w +") не создает новый файл - PullRequest
1 голос
/ 12 апреля 2020

Я пытаюсь создать текстовый файл, используя open (filename, 'x'). Я пробовал x = 'a +', 'w +', 'w'. Я использую windows 10, против кода «запустить python файл в терминале» и python 3.8.2

    import os

    print("cwd",os.getcwd())

    scriptpath = os.path.dirname(__file__)

    filename = "test.txt" #1
    #filename = scriptpath + "/test.txt" #2
    #filename = r"C:\Users\harki\Documents\ALGO\ALGO-NPL\test.txt" #3

    f = open(filename,'w+')
    f.write("test")
    f.close()

, работающего с первым именем файла:

PS C:\Users\harki\Documents\ALGO\ALGO-NPL> & C:/Users/harki/AppData/Local/Programs/Python/Python38/python.exe c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
Traceback (most recent call last):
  File "c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py", line 11, in <module>
    f = open(filename,'w+')
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'

выполняется со вторым именем файла:

PS C:\Users\harki\Documents\ALGO\ALGO-NPL> & C:/Users/harki/AppData/Local/Programs/Python/Python38/python.exe c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
Traceback (most recent call last):
  File "c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py", line 11, in <module>
    f = open(filename,'w+')
FileNotFoundError: [Errno 2] No such file or directory: 'c:/Users/harki/Documents/ALGO/ALGO-NPL/test.txt'

выполняется с третьим именем файла:

PS C:\Users\harki\Documents\ALGO\ALGO-NPL> & C:/Users/harki/AppData/Local/Programs/Python/Python38/python.exe c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py
cwd C:\Users\harki\Documents\ALGO\ALGO-NPL
Traceback (most recent call last):
  File "c:/Users/harki/Documents/ALGO/ALGO-NPL/test_save.py", line 11, in <module>
    f = open(filename,'w+')
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\harki\\Documents\\ALGO\\ALGO-NPL\\test.txt'

Редактировать: Перемещение проекта из папки «Документы» решило проблему

1 Ответ

0 голосов
/ 12 апреля 2020

Я использовал этот код для определения пути к файлу, и он работает для меня:

filename = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'folder/name', 'test.txt')

И затем я создаю файл с помощью joblib или pickle.

В вашем случае это аналогично второму имени файла, просто нужно добавить функцию join()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...