일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- TensorFlow
- aggs
- License
- sort
- API
- springboot
- zip 암호화
- plugin
- high level client
- Mac
- analyzer test
- flask
- token filter test
- Kafka
- Elasticsearch
- matplotlib
- query
- aggregation
- 파이썬
- Python
- 차트
- 900gle
- MySQL
- Test
- ELASTIC
- license delete
- docker
- licence delete curl
- Java
- zip 파일 암호화
Archives
- Today
- Total
개발잡부
[python] .txt 파일 라인 카운트 본문
반응형
파일의 카운트를 비교하여 데이터의 일치여부를 판단.
def compare_row(file_name):
a = open(file_a + file_name, 'r')
b = open(file_b + file_name, 'r')
row_a = len(a.readlines())
row_b = len(b.readlines())
a.close()
b.close()
if row_a == row_b :
return True
else:
return False
myFile = open('파일명', 'r')
{내용}
myFile.close()
{내용} 을 코딩
1. read()
라인 수를 구한다는 이야기는 줄바꿈 문자('\n') 의 갯수를 구한다는 이야기와 같으므로
print(myFile.read().count("\n")+1)
별로여..
2. readLine()
아니면 readLine()을 통해 반복문을 활용해 읽어들일 값이 없을 때 까지 매번 count를 해주는 방법도..별로.
cnt = 0
while True:
if myFile.readline()=='':
break
cnt += 1
print(cnt)
3. readLines()
readLines() 를 이용하면 보다 쉽게 구할 수 있습니다.
readLines() 는 줄 바꿈을 기준으로 매 줄을 각각 리스트의 요소로 하는 리스트를 반환해주기 때문에 반환되는 리스트의 길이를 구하면 그게 답이됩니다.
print(len(myFile.readlines()))
4. enumerate()
enumerate() 를 이용하면 파일 내용의 각각 line을 index와 연결되있는 데이터를 반환
그것을 리스트로 만들면, 즉 list(enumerate(myFile)) 은 다음과 같은 list를 반환
이를 활용해서 리스트 마지막 튜플의 첫번째 요소를 구해 +1을 해준다
별로여..
print(list(enumerate(myFile))[-1][0]+1)
예제
# -*- coding: utf-8 -*-
import json
import time
import glob
import os
import datetime as dt
import urllib3
import filecmp
import pandas as pd
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
def compare(file_name):
ret = filecmp.cmp(file_a + file_name, file_b + file_name)
return ret
def compare_row(file_name):
a = open(file_a + file_name, 'r')
b = open(file_b + file_name, 'r')
row_a = len(a.readlines())
row_b = len(b.readlines())
a.close()
b.close()
if row_a == row_b :
return True
else:
return False
##### MAIN SCRIPT #####
if __name__ == '__main__':
file_a = "/Users/doo/doo_py/homeplus/attribute/ab_test/as_is/";
file_b = "/Users/doo/doo_py/homeplus/attribute/ab_test/to_be/";
files_a = os.listdir(file_a)
files_b = os.listdir(file_b)
if len(files_a) < 1: print("Empty as-is directory")
if (len(files_a) != len(files_b)):
print("file 갯수 맞지 않음")
print("종료해주세요 선생님 Ctrl + C")
time.sleep(10)
row = 0;
com = 0;
for file_name in files_a:
print("compare..")
if compare_row(file_name) != True:
row = row +1
if compare(file_name) != True:
com = com +1
print("----------------------------------------")
print("----------------------------------------")
print("row 수 불일치 : "+ str(row))
print("----------------------------------------")
print("----------------------------------------")
print("동일파일 비교 불일치 : "+ str(com))
print("----------------------------------------")
print("----------------------------------------")
print("Done.")
반응형
'Python' 카테고리의 다른 글
[python] DB data to json (0) | 2023.09.04 |
---|---|
[python] 오탈자 교정 - SymSpellpy (0) | 2023.07.02 |
[python] 데이터검증 (0) | 2023.05.17 |
[python] API 응답시간 확인 (0) | 2023.05.04 |
[python] DB data to json file (0) | 2023.04.30 |
Comments