| import sys | |
| import json | |
| def count_jsonl_objects(file_path): | |
| count = 0 | |
| with open(file_path, 'r', encoding='utf-8') as file: | |
| for line_number, line in enumerate(file, 1): | |
| stripped_line = line.strip() | |
| if not stripped_line: | |
| continue # 跳过空行 | |
| try: | |
| json.loads(stripped_line) | |
| count += 1 | |
| except json.JSONDecodeError as e: | |
| print(f"解析第 {line_number} 行时发现无效JSON: {e}") | |
| return count | |
| if __name__ == "__main__": | |
| if len(sys.argv) != 2: | |
| print("使用方法: python count_jsonl.py <文件路径>") | |
| sys.exit(1) | |
| file_path = sys.argv[1] | |
| try: | |
| total = count_jsonl_objects(file_path) | |
| print(f"文件 {file_path} 中共包含 {total} 个有效的JSON对象") | |
| except FileNotFoundError: | |
| print(f"错误:文件 {file_path} 未找到") | |
| except Exception as e: | |
| print(f"发生未知错误: {e}") |