Наверное, у вас уже есть правильный ответ, но вот мой. Вместо использования списка для сбора нефильтрованных данных (что делает метод readlines()
), я использую два файла. Один из них предназначен для хранения основных данных, а второй для фильтрации данных при удалении определенной строки. Вот код:
main_file = open('data_base.txt').read() # your main dataBase file
filter_file = open('filter_base.txt', 'w')
filter_file.write(main_file)
filter_file.close()
main_file = open('data_base.txt', 'w')
for line in open('filter_base'):
if 'your data to delete' not in line: # remove a specific string
main_file.write(line) # put all strings back to your db except deleted
else: pass
main_file.close()
Надеюсь, вы найдете это полезным! :)
Попробуйте следующее:
if (!file_exists('path/to/directory')) {
mkdir('path/to/directory', 0777, true);
}
Обратите внимание, что 0777
уже является режимом по умолчанию для каталогов и все еще может быть изменен текущей umask.
Сначала необходимо проверить, существует ли каталог file_exists('path_to_directory')
Затем использование mkdir(path_to_directory)
для создания каталога
mkdir( string $pathname [, int $mode = 0777 [, bool $recursive = FALSE [, resource $context ]]] ) : bool
[еще 117] приблизительно mkdir () здесь
Полный код здесь:
$structure = './depth1/depth2/depth3/';
if (!file_exists($structure)) {
mkdir($structure);
}
Как насчет вспомогательной функции вроде этой:
function makeDir($path)
{
$ret = mkdir($path); // use @mkdir if you want to suppress warnings/errors
return $ret === true || is_dir($path);
}
Она вернет true
, если каталог был успешно создан или уже существует, и false
, если каталог не удалось создать.
Альтернатива лучше следующая (не должна выдавать никаких предупреждений):
function makeDir($path)
{
return is_dir($path) || mkdir($path);
}