Цикличное выполнение через файлы в папке

Я добавлю, что при использовании SELinux, что необходимо удостовериться, контекст типа является tmp_t, можно выполнить это при помощи chcon утилиты

chcon-t tmp_t загрузки

34
задан C. Ross 24 November 2009 в 19:24
поделиться

3 ответа

os.listdir () возвращает список имен файлов. Таким образом, filename - это строка. Полагаю, вам нужно открыть файл, прежде чем повторять его.

Также будьте осторожны с обратными косыми чертами в строках. В основном они используются для специальных escape-последовательностей, поэтому вам нужно избежать их, удвоив их. Вы можете использовать константу os.sep для большей переносимости или даже использовать os.path.join () :

folder = os.path.join('C:\\', 'Users', 'Sprinting', 'blue')
34
ответ дан 27 November 2019 в 17:01
поделиться
for pix in filename:

перебирает буквы имени файла. Так что это точно не то, что вам нужно. Вы, вероятно, захотите заменить эту строку на:

with open(filename) as current_file:
    for pix in current_file:

(при условии Python 2.6) и соответствующим образом сделать отступ для остальной части цикла.

Однако я не уверен, что новый цикл for сделает то, что вы хотите, если под pix вы не подразумеваете строку текста в текущем файле. Если файлы представляют собой двоичные файлы изображений, вам сначала нужно правильно прочитать их содержимое - в вашем сообщении недостаточно информации, чтобы догадаться, что здесь.

10
ответ дан 27 November 2019 в 17:01
поделиться

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

os.listdir не возвращает открытые файлы, он возвращает имена файлов. Вам нужно открыть файл, используя имя файла.

3
ответ дан 27 November 2019 в 17:01
поделиться
Другие вопросы по тегам:

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