반응형
이것은 내 코드로 각 줄을 인쇄 할 수 있지만 빈 줄이 나타나면 인쇄됩니다. CSV 파일 형식으로 인해 빈 줄이 나타나면 건너 뛰고 싶습니다.
import csv
import time
ifile = open ("C:\Users\BKA4ABT\Desktop\Test_Specification\RDBI.csv", "rb")
for line in csv.reader(ifile):
if not line:
empty_lines += 1
continue
print line
해결 방법
모든 공백 줄을 건너 뛰려면 ''.isspace ()
테스트를 사용해야합니다.
공백이 아닌 줄을 콘솔에 인쇄하는 것보다 더 복잡한 작업을 수행 할 수 있으므로 (CSV 모듈을 사용할 필요 없음) 다음은 DictReader와 관련된 예제입니다.
#!/usr/bin/env python
# Tested with Python 2.7
# I prefer this style of importing - hides the csv module
# in case you do from this_file.py import * inside of __init__.py
import csv as _csv
# Real comments are more complicated ...
def is_comment(line):
return line.startswith('#')
# Kind of sily wrapper
def is_whitespace(line):
return line.isspace()
def iter_filtered(in_file, *filters):
for line in in_file:
if not any(fltr(line) for fltr in filters):
yield line
# A dis-advantage of this approach is that it requires storing rows in RAM
# However, the largest CSV files I worked with were all under 100 Mb
def read_and_filter_csv(csv_path, *filters):
with open(csv_path, 'rb') as fin:
iter_clean_lines = iter_filtered(fin, *filters)
reader = _csv.DictReader(iter_clean_lines, delimiter=';')
return [row for row in reader]
# Stores all processed lines in RAM
def main_v1(csv_path):
for row in read_and_filter_csv(csv_path, is_comment, is_whitespace):
print(row) # Or do something else with it
# Simpler, less refactored version, does not use with
def main_v2(csv_path):
try:
fin = open(csv_path, 'rb')
reader = _csv.DictReader((line for line in fin if not
line.startswith('#') and not line.isspace()),
delimiter=';')
for row in reader:
print(row) # Or do something else with it
finally:
fin.close()
if __name__ == '__main__':
csv_path = "C:\Users\BKA4ABT\Desktop\Test_Specification\RDBI.csv"
main_v1(csv_path)
print('\n'*3)
main_v2(csv_path)
참조 페이지 https://stackoverflow.com/questions/18890688
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python twisted: where to start (0) | 2021.01.06 |
---|---|
파이썬 문자열의 모든 따옴표를 이스케이프 된 따옴표로 바꾸시겠습니까? (0) | 2021.01.06 |
파이썬 함수 내부의 변수에 +1 추가 (0) | 2021.01.06 |
파이썬 IPython 노트북 저장 위치 (0) | 2021.01.05 |
파이썬 How to convert string representation of list to a list? (0) | 2021.01.05 |
댓글