디렉토리에 파일을 나열하고 파이썬을 사용하여 각 파일을 읽는 데 도움이 필요합니다. 쉘 명령을 사용하여이를 수행하는 방법을 알고 있지만이를 수행 할 Pythonic 방법이 있습니까?마지막으로 수정 된 파일 10 개를 나열하고 10 개 파일의 각 행을 읽는 파이썬
1.) 디렉토리의 모든 파일을 나열하십시오.
2) 지난 (10)는 바람직하게는 와일드 카드)
3)
사용 쉘 명령 내가 할 수있는 모든 10 개 파일의 각 라인을 통해 읽기 사용 (/ 최신 파일을 수정 잡아 :
Linux_System# ls -ltr | tail -n 10
-rw-rw-rw- 1 root root 999934 Jul 26 01:06 data_log.569
-rw-rw-rw- 1 root root 999960 Jul 26 02:05 data_log.570
-rw-rw-rw- 1 root root 999968 Jul 26 03:13 data_log.571
-rw-rw-rw- 1 root root 999741 Jul 26 04:20 data_log.572
-rw-rw-rw- 1 root root 999928 Jul 26 05:31 data_log.573
-rw-rw-rw- 1 root root 999942 Jul 26 06:45 data_log.574
-rw-rw-rw- 1 root root 999916 Jul 26 07:46 data_log.575
-rw-rw-rw- 1 root root 999862 Jul 26 08:59 data_log.576
-rw-rw-rw- 1 root root 999685 Jul 26 10:15 data_log.577
-rw-rw-rw- 1 root root 999633 Jul 26 11:26 data_log.578
Linux_System# cat data_log.{569..578}
을
glob를 사용하여 파일을 나열하고 특정 파일을 열 수 있지만 마지막으로 수정 된 파일 10 개만 나열하고 와일드 카드 파일 목록을 공개 기능에 제공하는 방법을 모르겠습니다.
import os, fnmatch, glob
files = glob.glob("data_event_log.*")
files.sort(key=os.path.getmtime)
print("\n".join(files))
data_event_log.569
data_event_log.570
data_event_log.571
data_event_log.572
data_event_log.573
data_event_log.574
data_event_log.575
data_event_log.576
data_event_log.577
data_event_log.578
with open(data_event_log.560, 'r') as f:
output_list = []
for line in f.readlines():
if line.startswith('Time'):
lineRegex = re.compile(r'\d{4}-\d{2}-\d{2}')
a = (lineRegex.findall(line))
지금까지 작성한 코드와 특히 문제가 발생한 부분을 공유하십시오. – smarx
와일드 카드 란 무엇입니까? – ritlew
'파일의 파일 [-10 :] :'? –