функция создания нового файла в новом каталоге python, я получаю сообщение об ошибке, что система не может найти указанный путь: 'Python Programs' - PullRequest
0 голосов
/ 15 апреля 2020
import os
def new_directory(directory, filename):
    # Before creating a new directory, check to see if it already exists
    if not os.path.exists(directory):
        os.mkdir(directory)
        os.chdir(directory)
        file=open(filename,'w')
        file.close()
    else:
        os.chdir(directory)
        file=open(filename,'w')
        file.close()
    # Return the list of files in the new directory
    return os.listdir(directory)
print(new_directory("PythonPrograms", "script.py"))

1 Ответ

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

После создания или поиска существующего каталога вы os.chdir перейдете в этот каталог. Теперь ваш текущий каталог - ./PythonPrograms. Позже, когда вы os.listdir(directory), вы уже перешли в этот каталог и ищете ./PythonPrograms/PythonPrograms, которого не существует.

Это редко хорошая идея для os.chdir - этот тип ошибки это слишком легко сделать. Вместо этого просто сохраняйте более длинные пути. Я немного переработал код, чтобы код в if / else не повторялся:

import os

def new_directory(directory, filename):
    # Before creating a new directory, check to see if it already exists
    if not os.path.exists(directory):
        os.mkdir(directory)
    filepath = os.path.join(directory, filename)
    with open(filepath,'w') as file:
        pass
    # Return the list of files in the new directory
    return os.listdir(directory)

print(new_directory("PythonPrograms", "script.py"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...