반응형
나는 파이썬 스크립트 parse.py를 가지고 있는데, 스크립트에서 file1과 같은 파일을 연 다음 총 문자 수를 인쇄 할 수 있습니다.
filename = 'file1'
f = open(filename, 'r')
content = f.read()
print filename, len(content)
지금은 stdout을 사용하여 결과를 출력 파일-출력으로 보냅니다.
python parse.py >> output
그러나이 파일을 수동으로 파일별로 수행하고 싶지는 않지만 모든 파일을 자동으로 처리하는 방법이 있습니까? 처럼
ls | awk '{print}' | python parse.py >> output
그렇다면 문제는 standardin에서 파일 이름을 어떻게 읽을 수 있습니까? 아니면 ls와 그런 종류의 작업을 쉽게 수행 할 수있는 내장 함수가 이미 있습니까?
감사!
해결 방법
운영
os.listdir
을 사용하여 현재 디렉토리의 모든 파일을 나열 할 수 있습니다.
import os
for filename in os.listdir(os.getcwd()):
with open(os.path.join(os.cwd(), filename), 'r') as f: # open in readonly mode
# do your stuff
글롭
또는 glob
모듈을 사용하여 파일 패턴에 따라 일부 파일 만 나열 할 수 있습니다.
import glob
for filename in glob.glob('*.txt'):
with open(os.path.join(os.cwd(), filename), 'r') as f: # open in readonly mode
# do your stuff
현재 디렉토리 일 필요는 없으며 원하는 경로에 나열 할 수 있습니다.
path = '/some/path/to/file'
for filename in glob.glob(os.path.join(path, '*.txt')):
with open(os.path.join(os.cwd(), filename), 'r') as f: # open in readonly mode
# do your stuff
파이프
또는 fileinput
을 사용하여 지정한대로 파이프를 사용할 수도 있습니다.
import fileinput
for line in fileinput.input():
# do your stuff
그런 다음 배관과 함께 사용하십시오.
ls -1 | python parse.py
참조 페이지 https://stackoverflow.com/questions/18262293
반응형
'파이썬' 카테고리의 다른 글
파이썬 HTML 페이지 및 내용 다운로드 (0) | 2021.01.10 |
---|---|
파이썬 절인 개체를로드 할 수 없습니다. (0) | 2021.01.10 |
파이썬 Python을 사용한 Quicksort (0) | 2021.01.10 |
파이썬 file.write에서 줄 바꿈을 억제합니다. (0) | 2021.01.10 |
파이썬 Python-두 값 사이의 숫자로 목록을 만드시겠습니까? (0) | 2021.01.10 |
댓글