Created
October 28, 2021 13:50
-
-
Save RaMSFT/e390c75fefcc043324401355219df11a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import pandas as pd | |
| import timeit | |
| def count_lines_enumrate_list(file_name): | |
| fp = open(file_name,'r') | |
| line_count = list(enumerate(fp))[-1][0] | |
| return line_count | |
| def count_lines_enumrate_loop(file_name): | |
| fp = open(file_name,'r') | |
| for line_count, line in enumerate(fp): | |
| pass | |
| return line_count | |
| def count_lines_sum(file_name): | |
| fp = open(file_name,'r') | |
| line_count = sum(1 for line in fp) | |
| return line_count | |
| def count_lines_readlines(file_name): | |
| fp = open(file_name,'r') | |
| line_count = len(fp.readlines()) | |
| return line_count | |
| def count_lines_traditional(file_name): | |
| fp = open(file_name,'r') | |
| line_count = 0 | |
| for line in fp: | |
| line_count += 1 | |
| return line_count | |
| def count_lines_pandas(file_name): | |
| df = pd.read_csv(file_name, header=0) | |
| return len(df.index) | |
| source_file = ['flights_580mb.csv','flights_1400mb.csv','flights_2100mb.csv'] | |
| functions_list = ['count_lines_enumrate_loop','count_lines_enumrate_list','count_lines_sum' ,'count_lines_readlines','count_lines_traditional','count_lines_pandas'] | |
| for file_name in source_file: | |
| for function_name in functions_list: | |
| startime = timeit.default_timer() | |
| lines = eval(f"{function_name}('{file_name}')") | |
| print(f"{function_name}\t{file_name}\t{lines}\t{timeit.default_timer() - startime}") | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment