-
와일드카드로서의 대괄호(square brackets)TeX과 친구들 2024. 4. 4. 17:12
파이선 스크립트를 작성할 때, 입력 파일들을 다양한 방법으로 지정할 수 있게 하려 한다.
C:\> foo.py aaa.pdf b??.pdf c*.pdf
파일 이름에 언더스코어를 제외한 다른 기호들을 사용하지 않는 것이 바람직하지만, 그것을 내가 동료들에게 강제하기 어렵다. 동료들이 제공한 파일들을 갖고 시험하는데, 한 파일을 불러들이지 못한다. 원인은 대괄호이다.
[foo]goo.pdf
별표(*)와 물음표(*)만이 와일드카드 문자인 줄 알았는데, 대괄호도 와일드카드 문자이다. 리눅스에서도 그러하다고 한다.
cmd에서는 통하지 않으니 파워셸과 함께 윈도즈에 도입된 것으로 보인다.
glob.escape(inputFile)
glob.escape()가, 별표와 물음표까지 이스케이프하기 때문에, 해법이 되지 않는다. glob를 위해 대괄호만 이스케이프하는 방법이 대괄호를 대괄호로 감싸는 것이라고 한다.
[[]foo[]]goo.pdf
그래서 다음과 같은 코드를 추가했다.
for i in range(len(inputFiles)): inputFiles[i] = re.sub("\\[(.+?)\\]", "[[]\\1[]]", inputFiles[i])
'TeX과 친구들' 카테고리의 다른 글
파이선으로 명령행과 윈도를 동시에 지원하는 프로그램 만들기 (0) 2024.04.18 파워셸 프롬프트 바꾸기 (0) 2024.04.04 Zapfino 폰트 (0) 2024.03.28 레이텍을 이용하여 Tagged PDF 만들기 (0) 2023.12.18 Hunspell을 이용한 한글 맞춤법 검사 (0) 2023.11.06