Удалите все файлы в каталоге

Вот пример того, как проверить int и String, которые вы передаете из контроллера Java в файл JSP.

MainController.java:

@RequestMapping(value="/ImportJavaToJSP")
public ModelAndView getImportJavaToJSP() {
    ModelAndView model2= new ModelAndView("importJavaToJSPExamples");

    int someNumberValue=6;
    String someStringValue="abcdefg";
    //model2.addObject("someNumber", someNumberValue);
    model2.addObject("someString", someStringValue);

    return model2;
}

importJavaToJSPExamples.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<p>${someNumber}</p>
<c:if test="${not empty someNumber}">
    <p>someNumber is Not Empty</p>
</c:if>
<c:if test="${empty someNumber}">
    <p>someNumber is Empty</p>
</c:if>
<p>${someString}</p>
<c:if test="${not empty someString}">
    <p>someString is Not Empty</p>
</c:if>
<c:if test="${empty someString}">
    <p>someString is Empty</p>
</c:if>
42
задан nick 14 October 2019 в 22:47
поделиться

6 ответов

os.remove () не работает с каталогом, а os.rmdir () будет работать только с пустым каталогом. И Python не будет автоматически расширять "/ home / me / test / *", как это делают некоторые оболочки.

Однако вы можете использовать shutil.rmtree () в каталоге для этого.

import shutil
shutil.rmtree('/home/me/test') 

] будьте осторожны, так как он удаляет файлы и подкаталоги .

59
ответ дан 26 November 2019 в 23:36
поделиться

os.remove не разрешает шаблоны стиля unix. Если вы используете unix-подобную систему, вы можете:

os.system('rm '+test)

В противном случае вы можете:

import glob, os
test = '/path/*'
r = glob.glob(test)
for i in r:
   os.remove(i)
16
ответ дан 26 November 2019 в 23:36
поделиться

shutil.rmtree () для большинства случаев. Но это не работает в Windows для файлов только для чтения. Для Windows импортируйте модули win32api и win32con из PyWin32.

def rmtree(dirname):
    retry = True
    while retry:
        retry = False
        try:
            shutil.rmtree(dirname)
        except exceptions.WindowsError, e:
            if e.winerror == 5: # No write permission
                win32api.SetFileAttributes(dirname, win32con.FILE_ATTRIBUTE_NORMAL)
                retry = True
1
ответ дан 26 November 2019 в 23:36
поделиться

Поскольку * является конструкцией оболочки. Python буквально ищет файл с именем «*» в каталоге / home / me / test. Используйте listdir, чтобы сначала получить список файлов, а затем вызвать remove для каждого из них.

7
ответ дан 26 November 2019 в 23:36
поделиться

звездочка расширяется оболочкой Unix. Ваш вызов не обращается к оболочке, он просто пытается удалить файл с именем, оканчивающимся на звездочку

3
ответ дан 26 November 2019 в 23:36
поделиться

os.remove удалит только один файл.

Для удаления с использованием подстановочных знаков вам нужно будет написать свою собственную процедуру, которая обрабатывает это.

Есть ] довольно много предлагаемых подходов , перечисленных на этой странице форума.

0
ответ дан 26 November 2019 в 23:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: