glob — Unix style pathname pattern expansion¶
The glob module finds all the pathnames matching a specified pattern according to the rules used by the Unix shell, although results are returned in arbitrary order. No tilde expansion is done, but * , ? , and character ranges expressed with [] will be correctly matched. This is done by using the os.scandir() and fnmatch.fnmatch() functions in concert, and not by actually invoking a subshell.
Note that files beginning with a dot ( . ) can only be matched by patterns that also start with a dot, unlike fnmatch.fnmatch() or pathlib.Path.glob() . (For tilde and shell variable expansion, use os.path.expanduser() and os.path.expandvars() .)
For a literal match, wrap the meta-characters in brackets. For example, ‘[?]’ matches the character ‘?’ .
The pathlib module offers high-level path objects.
glob. glob ( pathname , * , root_dir = None , dir_fd = None , recursive = False , include_hidden = False ) ¶
Return a possibly empty list of path names that match pathname, which must be a string containing a path specification. pathname can be either absolute (like /usr/src/Python-1.5/Makefile ) or relative (like ../../Tools/*/*.gif ), and can contain shell-style wildcards. Broken symlinks are included in the results (as in the shell). Whether or not the results are sorted depends on the file system. If a file that satisfies conditions is removed or added during the call of this function, whether a path name for that file be included is unspecified.
If root_dir is not None , it should be a path-like object specifying the root directory for searching. It has the same effect on glob() as changing the current directory before calling it. If pathname is relative, the result will contain paths relative to root_dir.
This function can support paths relative to directory descriptors with the dir_fd parameter.
If recursive is true, the pattern “ ** ” will match any files and zero or more directories, subdirectories and symbolic links to directories. If the pattern is followed by an os.sep or os.altsep then files will not match.
If include_hidden is true, “ ** ” pattern will match hidden directories.
Raises an auditing event glob.glob with arguments pathname , recursive .
Raises an auditing event glob.glob/2 with arguments pathname , recursive , root_dir , dir_fd .
Using the “ ** ” pattern in large directory trees may consume an inordinate amount of time.
Changed in version 3.5: Support for recursive globs using “ ** ”.
Changed in version 3.10: Added the root_dir and dir_fd parameters.
Changed in version 3.11: Added the include_hidden parameter.
glob. iglob ( pathname , * , root_dir = None , dir_fd = None , recursive = False , include_hidden = False ) ¶
Return an iterator which yields the same values as glob() without actually storing them all simultaneously.
Raises an auditing event glob.glob with arguments pathname , recursive .
Raises an auditing event glob.glob/2 with arguments pathname , recursive , root_dir , dir_fd .
Changed in version 3.5: Support for recursive globs using “ ** ”.
Changed in version 3.10: Added the root_dir and dir_fd parameters.
Changed in version 3.11: Added the include_hidden parameter.
Escape all special characters ( ‘?’ , ‘*’ and ‘[‘ ). This is useful if you want to match an arbitrary literal string that may have special characters in it. Special characters in drive/UNC sharepoints are not escaped, e.g. on Windows escape(‘//?/c:/Quo vadis?.txt’) returns ‘//?/c:/Quo vadis[?].txt’ .
For example, consider a directory containing the following files: 1.gif , 2.txt , card.gif and a subdirectory sub which contains only the file 3.txt . glob() will produce the following results. Notice how any leading components of the path are preserved.
>>> import glob >>> glob.glob('./4.*') ['./1.gif', './2.txt'] >>> glob.glob('*.gif') ['1.gif', 'card.gif'] >>> glob.glob('?.gif') ['1.gif'] >>> glob.glob('**/*.txt', recursive=True) ['2.txt', 'sub/3.txt'] >>> glob.glob('./**/', recursive=True) ['./', './sub/']
If the directory contains files starting with . they won’t be matched by default. For example, consider a directory containing card.gif and .card.gif :
>>> import glob >>> glob.glob('*.gif') ['card.gif'] >>> glob.glob('.c*') ['.card.gif']
Shell-style filename (not path) expansion
Как избавиться от двойной обратной косой черты в строке пути к файлу Python Windows? [Дубликат]
Двойная обратная косая черта не является неправильной, Python печатает / представляет это для пользователя. Если a = r’raw s\tring’ и b = ‘raw s\\tring’ (без’ r ‘и явной двойной косой черты), то они оба представлены как ‘raw s\\tring’ .
5 ответов
Двойная обратная косая черта не является ошибкой, python печатает/представляет ее так, как пользователь. Если a = r’raw s\tring’ и b = ‘raw s\\tring’ (нет ‘r’ и явная двойная косая черта), то они оба представлены как ‘raw s\\tring’ .
>>> a = r'raw s\tring' >>> b = 'raw s\\tring' >>> a 'raw s\\tring' >>> b 'raw s\\tring'
Btw, ваш код четко отредактирован и несовместим между фактическим и тем, что вы разместили, так как существует очевидная разница в сообщении об ошибке и имени файла:
PDF = r'C:\Users\user\Desktop\File_%s.pdf' %item
'C:\\Users\\user\\Desktop\\Filed_055123.pdf'
Обратите внимание на дополнительный d в имени файла Filed_ vs File_ . Сообщение об ошибке может появляться из части, которую вы отредактировали.
Извините, но это не был полезный ответ. Так что, если двойная косая черта имеет место, то как это исправить .
Двойная обратная косая черта обусловлена r , необработанной строкой:
r'C:\Users\user\Desktop\File_%s.pdf' ,
Используется, потому что \ может вывести некоторые из символов.
>>> strs = "c:\desktop\notebook" >>> print strs #here print thinks that \n in \notebook is the newline char c:\desktop otebook >>> strs = r"c:\desktop\notebook" #using r'' escapes the \ >>> print strs c:\desktop\notebook >>> print repr(strs) #actual content of strs 'c:\\desktop\\notebook'
В приведенном выше примере, если вы отображаете strs как >>> strs вы должны получить c:\\desktop\\notebook . печать не показывает экранированный то есть двойной слэш \\
Спасите себя от головной боли, вы также можете использовать другие косые черты. если вы знаете, что я говорю. обратная косая черта.
который вы используете сейчас PDF = ‘C:\Users\user\Desktop\File_%s.pdf’ %item
PDF = ‘C:/Users/user/Desktop/File_%s.pdf’% item
** он не будет рассматриваться как экранирующий символ.
Это не так. Двойная обратная косая черта — это всего лишь способ компьютерного высказывания обратной косой черты. Да, я знаю, что это звучит странно, но думайте об этом так — для представления специальных символов обратная косая черта была выбрана как экранирующий символ (например,\n означает символ новой строки, а не символ обратной косой черты, за которым следует символ n). Но что произойдет, если вы действительно хотите распечатать (или использовать) обратную косую черту (возможно, за ней следуют больше символов), но вы не хотите, чтобы компьютер рассматривал ее как символ экранирования? В этом случае мы избегаем обратной косой черты, то есть мы используем двойную обратную косую черту, чтобы компьютер понимал ее как единую обратную косую черту.
Это сделано автоматически в вашем случае из-за r , который вы добавили перед строкой.
alwbtc @ Я смею сказать: «Я нашел ошибку. «
PDF = r'C:\Users\user\Desktop\File_%s.pdf' %item doIt(PDF)`
for item in my_dictionary: PDF = r'C:\Users\user\Desktop\File_%s.pdf' % mydictionary[item] doIt(PDF)`
на самом деле вы действительно искали File_pencil.pdf(not File_055123.pdf). Вы скопировали индексный словарь, а не его содержимое. Эта тема форума может быть побочным эффектом.
Ещё вопросы
- 1 Smack API выдает ошибку при локальном входе в настройку Tigase Server
- 0 Получить объект, который содержит массив других объектов
- 0 Лучшие практики для динамического создания списка элементов в jquery
- 0 Как создать загрузчик потока в DirectX
- 1 Как я могу определить атрибуты ребер или вершин с помощью Юнга?
- 1 Обобщения: «Синтаксическая ошибка на токене» расширяется «, ожидается»
- 0 Объединить последние записи с таблицей
- 0 2D массив не заполняется правильно или . C ++
- 0 Почему поле ввода текста в IE 8 всегда на 6 пикселей шире, чем в другом браузере?
- 0 Не могу найти загруженные файлы
- 1 Функция расширения Kotlin с запросом на отдых сервера
- 1 NodeJS Websockets — завершить сокет после отправки данных
- 0 Как отобразить количество отправленных значений переключателей, используя PHP [duplicate]
- 1 Как отобразить значения двух массивов и вернуть индекс сопоставленного значения
- 0 Зацикливание SVG прямоугольников из базы данных
- 1 C # / Excel — Получить имя ячейки с OleDb
- 0 Ошибка: «Ответ» не был объявлен в этой области
- 0 Использование CASE в Mysql для установки значения в поле Alias
- 1 Инъекция активности Androidx с помощью Dagger 2
- 1 Есть ли какой-то конкретный способ заставить систему удалить всплывающее окно появляется слушатель в Android
- 0 Не удается обновить поле даты и времени MS SQL с помощью PHP
- 0 Получить значение времени ожидания сокета в Windows
- 0 Изображения с веб-камеры в память на C ++
- 0 new-выражение и delete-выражение для константной ссылки и константного указателя
- 1 Клавиатура Android не отображается при нажатии поля ввода в единстве?
- 0 Два объекта, кажется, имеют один и тот же адрес
- 0 Marshal.SizeOf (strurtureType) Всегда выдает ошибку
- 0 Как проверить обещание в жасмине и карме
- 0 Специальная функция в сообщении об ошибке
- 0 Как закрыть все открытые панели при нажатии на другую
- 0 AngularJS Применить фильтр ко всем входам
- 0 отображать значение из таблицы php при нажатии на кнопку на другой странице
- 1 Управление вкладками Firefox в селене
- 1 Как приостановить / возобновить видео в Exoplayer?
- 1 Простая клиент-серверная программа с каналами NIO
- 1 Spinner с подчеркиванием и специальной стрелкой вправо
- 1 Как печатать без диалога печати в Java
- 1 Использование интерфейса в качестве контракта данных для службы WCF
- 1 Попробуйте поймать и, наконец, с заявлениями возврата
- 1 WebRTC — создать объект PeerConnectionFactory
- 0 добавить несколько графиков d3, nvd3, используя для цикла
- 0 Шаблонный класс C ++ с пользовательским поведением для контейнеров против примитивных типов?
- 0 Как извлечь данные в текстовую область на основе выбранной опции, используя цикл foreach?
- 1 Telegram TypeError: первый аргумент должен быть вызываемым
- 1 Как использовать + = (Добавить И) с пониманием списка
- 0 CSS, Div перекрываются, несмотря на поля
- 1 Как преобразовать ответ библиотеки клиента Google Vision в Json
- 0 Опубликовать данные Json для веб-методов
- 0 Проблема с запросом MySQL — сопоставление нескольких идентификаторов в объединенной таблице
- 0 Ошибка при загрузке изображений