当前位置: 首页 > news >正文

利用Minicsv库解析csv文件的c程序及读入测试

上午的c程序写入xlsx较快但不正确,python程序虽正确但过慢。所以找了一个全部源程序加起来不到4K字节的C语言csv解析库Minicsv,来改写,改写结果如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include "xlsxwriter.h"
#include "minicsv.h"#define MAX_COLS 255       // 最大列数限制
#define MAX_LINE_LENGTH 65536  // 单行最大长度int main(int argc, char *argv[]) {if (argc != 3) {fprintf(stderr, "Usage: %s <input.csv> <output.xlsx>\n", argv[0]);return EXIT_FAILURE;}// 打开CSV文件FILE *csv_file = fopen(argv[1], "r");if (!csv_file) {fprintf(stderr, "Error opening file: %s\n", strerror(errno));return EXIT_FAILURE;}// 创建工作簿和工作表lxw_workbook *workbook = workbook_new(argv[2]);lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);char line_buf[MAX_LINE_LENGTH];char *cols[MAX_COLS];size_t cols_count;int row = 0;int progress_counter = 0;printf("Processing CSV file...\n");// 逐行读取和处理CSV文件while (fgets(line_buf, sizeof(line_buf), csv_file)) {// 移除换行符line_buf[strcspn(line_buf, "\r\n")] = '\0';// 解析当前行if (minicsv_parse_line(line_buf, cols, &cols_count, MAX_COLS) == NULL) {fprintf(stderr, "Error at line %d: Too many columns or parsing error\n", row+1);continue;}// 跳过空行if (cols_count == 0) {continue;}// 写入Excel行for (size_t i = 0; i < cols_count; i++) {// 尝试转换为数字char *endptr;double num = strtod(cols[i], &endptr);if (*endptr == '\0') {worksheet_write_number(worksheet, row, i, num, NULL);} else {worksheet_write_string(worksheet, row, i, cols[i], NULL);}}row++;progress_counter++;// 每处理100000行显示进度if (progress_counter >= 100000) {printf("Processed %d rows...\n", row);progress_counter = 0;}}// 关闭文件和保存工作簿fclose(csv_file);lxw_error error = workbook_close(workbook);if (error) {fprintf(stderr, "Error creating Excel file: %s\n", lxw_strerror(error));return EXIT_FAILURE;}printf("Successfully converted '%s' to '%s' (%d rows)\n", argv[1],argv[2], row);return EXIT_SUCCESS;
}

编译和执行情况如下

gcc minicsv.c c2x3.c -o c2x3 -I . -I libxlsxwriter/include -lxlsxwriter -L libxlsxwriter/lib -O3
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:libxlsxwriter/lib
time ./c2x3  NYC_311_SR_2010-2020-sample-1M.csv output.xlsx
Processing CSV file...
Processed 100000 rows...
Processed 200000 rows...
Processed 300000 rows...
Processed 400000 rows...
Processed 500000 rows...
Processed 600000 rows...
Processed 700000 rows...
Processed 800000 rows...
Processed 900000 rows...
Processed 1000000 rows...
Successfully converted 'NYC_311_SR_2010-2020-sample-1M.csv' to 'output.xlsx' (1000001 rows)real    1m14.115s
user    0m44.640s
sys     0m7.400s
ls -l output.xlsx
-rwxrwxrwx 1 root root 219313665 Aug 15 12:54 output.xlsx

三种插件读入情况如下,可见它们都能完整读取刚才生成的文件,行数正确,内容符合预期,我们的csv解析器实现正确,生成的文件大小比python生成的略小,但不影响结果。

D load rusty_sheet;
D .timer on
D create table t as from read_sheet('output.xlsx');
100% ▕████████████████████████████████████████████████████████████▏
Run Time (s): real 48.929 user 50.380880 sys 3.794923
D summarize t;
┌──────────────────────┬─────────────┬──────────────────────┬──────────────────────┬───────────────┬───┬────────────────────┬────────────────────┬────────────────────┬─────────┬─────────────────┐
│     column_name      │ column_type │         min          │         max          │ approx_unique │ … │        q25         │        q50         │        q75         │  count  │ null_percentage │
│       varcharvarcharvarcharvarchar        │     int64     │   │      varcharvarcharvarchar       │  int64  │  decimal(9,2)   │
├──────────────────────┼─────────────┼──────────────────────┼──────────────────────┼───────────────┼───┼────────────────────┼────────────────────┼────────────────────┼─────────┼─────────────────┤
│ Unique KeyBIGINT11465364484781731022792 │ … │ 25277477328500714019850910000000.00 │
│ Created DateVARCHAR01/01/2010 01:05:5…  │ 12/31/2019 12:58:5…  │        920156 │ … │ NULLNULLNULL10000000.00 │
│ Closed DateVARCHAR012/31/2019 12:59:0…  │        667996 │ … │ NULLNULLNULL10000000.00 │
│ Agency               │ VARCHAR3-1-1                │ TLC                  │            29 │ … │ NULLNULLNULL10000000.00 │
│ Agency Name          │ VARCHAR3-1-1                │ Valuation Policy     │           686 │ … │ NULLNULLNULL10000000.00 │
│ Complaint TypeVARCHAR../../WEB-INF/web.…  │ ZTESTINT             │           281 │ … │ NULLNULLNULL10000000.00 │
│ Descriptor           │ VARCHAR0                    │ unknown odor/taste…  │          1553 │ … │ NULLNULLNULL10000000.00 │
│ Location TypeVARCHAR0                    │ Wooded Area          │           154 │ … │ NULLNULLNULL10000000.00 │
│ Incident Zip         │ BIGINT0900836548 │ … │ 10257111301123310000000.01 │
│ Incident Address     │ VARCHAR* *                  │ west 155 street an…  │        333521 │ … │ NULLNULLNULL10000000.00 │
│ Street Name          │ VARCHAR*                    │ wyckoff avenue       │         13987 │ … │ NULLNULLNULL10000000.00 │
│ Cross Street 1VARCHAR0                    │ mermaid              │         14204 │ … │ NULLNULLNULL10000000.00 │
│ Cross Street 2VARCHAR0                    │ surf                 │         16003 │ … │ NULLNULLNULL10000000.00 │
│ Intersection Stree…  │ VARCHAR0                    │ flatlands AVE        │         11592 │ … │ NULLNULLNULL10000000.00 │
│ Intersection Stree…  │ VARCHAR0                    │ glenwood RD          │         12172 │ … │ NULLNULLNULL10000000.00 │
│ Address TypeVARCHAR0                    │ PLACENAME            │             6 │ … │ NULLNULLNULL10000000.00 │
│ City                 │ VARCHAR*                    │ YORKTOWN HEIGHTS     │           320 │ … │ NULLNULLNULL10000000.00 │
│ Landmark             │ VARCHAR0                    │ ZULETTE AVENUE       │          6235 │ … │ NULLNULLNULL10000000.00 │
│ Facility TypeVARCHAR0                    │ School District      │             6 │ … │ NULLNULLNULL10000000.00 │
│ StatusVARCHAR     │ Assigned             │ Unspecified          │            10 │ … │ NULLNULLNULL10000000.00 │
│ Due DateVARCHAR012/31/2018 12:59:2…  │        363080 │ … │ NULLNULLNULL10000000.00 │
│ Resolution Descrip…  │ VARCHAR0                    │ Your request was s…  │          1368 │ … │ NULLNULLNULL10000000.00 │
│ Resolution Action …  │ VARCHAR012/31/2019 12:58:0…  │        787085 │ … │ NULLNULLNULL10000000.00 │
│ Community Board      │ VARCHAR0 Unspecified        │ Unspecified STATEN…  │            74 │ … │ NULLNULLNULL10000000.00 │
│ BBL                  │ BIGINT05270000501380610 │ … │ 8532218202037638696306535590810000000.00 │
│ Borough              │ VARCHAR     │ BRONX                │ Unspecified          │             6 │ … │ NULLNULLNULL10000000.00 │
│ X Coordinate (Stat…  │ BIGINT01067220108282 │ … │ 9889451002094101631710000000.00 │
│ Y Coordinate (Stat…  │ BIGINT0271876129370 │ … │ 17419419821123011310000000.00 │
│ Open Data Channel …  │ VARCHAR     │ MOBILE               │ UNKNOWN              │             5 │ … │ NULLNULLNULL10000000.00 │
│ Park Facility Name   │ VARCHAR"Uncle" Vito F. Ma…  │ Zimmerman Playground │          2016 │ … │ NULLNULLNULL10000000.00 │
│ Park Borough         │ VARCHAR     │ BRONX                │ Unspecified          │             6 │ … │ NULLNULLNULL10000000.00 │
│ Vehicle TypeBIGINT001 │ … │ 00010000000.03 │
│ Taxi Company Borough │ BIGINT001 │ … │ 00010000000.08 │
│ Taxi Pick Up Locat…  │ BIGINT001 │ … │ 00010000000.79 │
│ Bridge Highway Name  │ BIGINT001 │ … │ 00010000000.23 │
│ Bridge Highway Dir…  │ BIGINT001 │ … │ 00010000000.23 │
│ Road Ramp            │ BIGINT001 │ … │ 00010000000.23 │
│ Bridge Highway Seg…  │ BIGINT001 │ … │ 00010000000.24 │
│ Latitude             │ DOUBLE0.040.9128688361176 │ … │ 2.43619520404981440.6840017437987140.76377954861527510000000.00 │
│ Longitude            │ DOUBLE-77.51958440.0425806 │ … │ -73.95431355456392-73.89694232795956-13.5594012789610310000000.00 │
│ Location             │ VARCHAR(40.1123853, -77.5…  │ 0310936 │ … │ NULLNULLNULL10000000.00 │
├──────────────────────┴─────────────┴──────────────────────┴──────────────────────┴───────────────┴───┴────────────────────┴────────────────────┴────────────────────┴─────────┴─────────────────┤
│ 41 rows                                                                                                                                                                   12 columns (10 shown) │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Run Time (s): real 0.511 user 2.972291 sys 0.092939
D load excel;
Run Time (s): real 0.037 user 0.051329 sys 0.001551
D create table t2 as from read_xlsx('output.xlsx');
Run Time (s): real 2.088 user 1.624796 sys 0.274348
Invalid Input Error:
read_xlsx: Failed to parse cell 'N4': Could not convert string 'WILLOUGHBY AVENUE' to DOUBLE
D create table t2 as from read_xlsx('output.xlsx',all_varchar=1,header=1);
100% ▕████████████████████████████████████████████████████████████▏
Run Time (s): real 16.844 user 14.512552 sys 0.502509
D summarize t2;
┌──────────────────────┬─────────────┬──────────────────────┬───────────────────────────────────────────────────────────────┬───────────────┬───────┬───────┬───────┬───────┬───────┬─────────┬─────────────────┐
│     column_name      │ column_type │         min          │                              max                              │ approx_unique │  avg  │  std  │  q25  │  q50  │  q75  │  count  │ null_percentage │
│       varcharvarcharvarcharvarchar                            │     int64     │ int32 │ int32 │ int32 │ int32 │ int32 │  int64  │  decimal(9,2)   │
├──────────────────────┼─────────────┼──────────────────────┼───────────────────────────────────────────────────────────────┼───────────────┼───────┼───────┼───────┼───────┼───────┼─────────┼─────────────────┤
│ Unique KeyVARCHAR1146536448478173857267NULLNULLNULLNULLNULL10000000.00 │
│ Created DateVARCHAR01/01/2010 01:05:5…  │ 12/31/2019 12:58:50 PM                                        │        920156NULLNULLNULLNULLNULL10000000.00 │
│ Closed DateVARCHAR012/31/2019 12:59:00 PM                                        │        667996NULLNULLNULLNULLNULL10000000.00 │
│ Agency               │ VARCHAR3-1-1                │ TLC                                                           │            29NULLNULLNULLNULLNULL10000000.00 │
│ Agency Name          │ VARCHAR3-1-1                │ Valuation Policy                                              │           686NULLNULLNULLNULLNULL10000000.00 │
│ Complaint TypeVARCHAR../../WEB-INF/web.…  │ ZTESTINT                                                      │           281NULLNULLNULLNULLNULL10000000.00 │
│ Descriptor           │ VARCHAR0                    │ unknown odor/taste in drinking water (QA6)1553NULLNULLNULLNULLNULL10000000.00 │
│ Location TypeVARCHAR0                    │ Wooded Area                                                   │           154NULLNULLNULLNULLNULL10000000.00 │
│ Incident Zip         │ VARCHAR*                    │ XXXXX                                                         │           560NULLNULLNULLNULLNULL10000000.00 │
│ Incident Address     │ VARCHAR* *                  │ west 155 street and edgecombe avenue                          │        333521NULLNULLNULLNULLNULL10000000.00 │
│ Street Name          │ VARCHAR*                    │ wyckoff avenue                                                │         13987NULLNULLNULLNULLNULL10000000.00 │
│ Cross Street 1VARCHAR0                    │ mermaid                                                       │         14204NULLNULLNULLNULLNULL10000000.00 │
│ Cross Street 2VARCHAR0                    │ surf                                                          │         16003NULLNULLNULLNULLNULL10000000.00 │
│ Intersection Stree…  │ VARCHAR0                    │ flatlands AVE                                                 │         11592NULLNULLNULLNULLNULL10000000.00 │
│ Intersection Stree…  │ VARCHAR0                    │ glenwood RD                                                   │         12172NULLNULLNULLNULLNULL10000000.00 │
│ Address TypeVARCHAR0                    │ PLACENAME                                                     │             6NULLNULLNULLNULLNULL10000000.00 │
│ City                 │ VARCHAR*                    │ YORKTOWN HEIGHTS                                              │           320NULLNULLNULLNULLNULL10000000.00 │
│ Landmark             │ VARCHAR0                    │ ZULETTE AVENUE                                                │          6235NULLNULLNULLNULLNULL10000000.00 │
│ Facility TypeVARCHAR0                    │ School District                                               │             6NULLNULLNULLNULLNULL10000000.00 │
│ StatusVARCHAR     │ Assigned             │ Unspecified                                                   │            10NULLNULLNULLNULLNULL10000000.00 │
│ Due DateVARCHAR012/31/2018 12:59:20 PM                                        │        363080NULLNULLNULLNULLNULL10000000.00 │
│ Resolution Descrip…  │ VARCHAR0                    │ Your request was submitted to the Department of Homeless Se…  │          1368NULLNULLNULLNULLNULL10000000.00 │
│ Resolution Action …  │ VARCHAR012/31/2019 12:58:00 PM                                        │        787085NULLNULLNULLNULLNULL10000000.00 │
│ Community Board      │ VARCHAR0 Unspecified        │ Unspecified STATEN ISLAND                                     │            74NULLNULLNULLNULLNULL10000000.00 │
│ BBL                  │ VARCHAR05270000501245925NULLNULLNULLNULLNULL10000000.00 │
│ Borough              │ VARCHAR     │ BRONX                │ Unspecified                                                   │             6NULLNULLNULLNULLNULL10000000.00 │
│ X Coordinate (Stat…  │ VARCHAR0999999104831NULLNULLNULLNULLNULL10000000.00 │
│ Y Coordinate (Stat…  │ VARCHAR0271876120308NULLNULLNULLNULLNULL10000000.00 │
│ Open Data Channel …  │ VARCHAR     │ MOBILE               │ UNKNOWN                                                       │             5NULLNULLNULLNULLNULL10000000.00 │
│ Park Facility Name   │ VARCHAR"Uncle" Vito F. Ma…  │ Zimmerman Playground                                          │          2016NULLNULLNULLNULLNULL10000000.00 │
│ Park Borough         │ VARCHAR     │ BRONX                │ Unspecified                                                   │             6NULLNULLNULLNULLNULL10000000.00 │
│ Vehicle TypeVARCHAR0                    │ Green Taxi                                                    │             5NULLNULLNULLNULLNULL10000000.00 │
│ Taxi Company Borough │ VARCHAR0                    │ Staten Island                                                 │            11NULLNULLNULLNULLNULL10000000.00 │
│ Taxi Pick Up Locat…  │ VARCHAR0                    │ YORK AVENUE AND EAST 70 STREET                                │          1971NULLNULLNULLNULLNULL10000000.00 │
│ Bridge Highway Name  │ VARCHAR0                    │ Willis Ave Br - 125th St/1st Ave                              │            65NULLNULLNULLNULLNULL10000000.00 │
│ Bridge Highway Dir…  │ VARCHAR0                    │ Westbound/To Goethals Br                                      │            50NULLNULLNULLNULLNULL10000000.00 │
│ Road Ramp            │ VARCHAR0                    │ Roadway                                                       │             4NULLNULLNULLNULLNULL10000000.00 │
│ Bridge Highway Seg…  │ VARCHAR0                    │ Wythe Ave/Kent Ave (Exit 31)795NULLNULLNULLNULLNULL10000000.00 │
│ Latitude             │ VARCHAR040.9128688325711NULLNULLNULLNULLNULL10000000.00 │
│ Longitude            │ VARCHAR-73.70059680309785NULLNULLNULLNULLNULL10000000.00 │
│ Location             │ VARCHAR(40.1123853, -77.5…  │ 0310936NULLNULLNULLNULLNULL10000000.00 │
├──────────────────────┴─────────────┴──────────────────────┴───────────────────────────────────────────────────────────────┴───────────────┴───────┴───────┴───────┴───────┴───────┴─────────┴─────────────────┤
│ 41 rows                                                                                                                                                                                            12 columns │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Run Time (s): real 0.198 user 1.525080 sys 0.021050
C:\d>duckdb122
v1.2.2 7c039464e4
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.D install  sheetreader from community;
100% ▕████████████████████████████████████████████████████████████▏
D load sheetreader;
D .timer on
D create table t as from sheetreader('output.xlsx');
100% ▕████████████████████████████████████████████████████████████▏
Run Time (s): real 8.745 user 24.765625 sys 0.609375
D summarize t;
┌──────────────────────┬─────────────┬──────────────────────┬──────────────────────┬───────────────┬───┬────────────────────┬────────────────────┬─────────────────────┬─────────┬─────────────────┐
│     column_name      │ column_type │         min          │         max          │ approx_unique │ … │        q25         │        q50         │         q75         │  count  │ null_percentage │
│       varcharvarcharvarcharvarchar        │     int64     │   │      varcharvarcharvarchar       │  int64  │  decimal(9,2)   │
├──────────────────────┼─────────────┼──────────────────────┼──────────────────────┼───────────────┼───┼────────────────────┼────────────────────┼─────────────────────┼─────────┼─────────────────┤
│ Unique KeyDOUBLE11465364.048478173.0972278 │ … │ 25259190.0287762732850243.75137341440210190.3675816310000000.00 │
│ Created DateVARCHAR01/01/2010 01:05:5…  │ 12/31/2019 12:58:5…  │        815306 │ … │ NULLNULLNULL10000000.00 │
│ Closed DateVARCHAR01/01/1900 12:00:0…  │ 12/31/2019 12:59:0…  │        736431 │ … │ NULLNULLNULL10000002.86 │
│ Agency               │ VARCHAR3-1-1                │ TLC                  │            27 │ … │ NULLNULLNULL10000000.00 │
│ Agency Name          │ VARCHAR3-1-1                │ Valuation Policy     │           476 │ … │ NULLNULLNULL10000000.00 │
│ Complaint TypeVARCHAR../../WEB-INF/web.…  │ ZTESTINT             │           247 │ … │ NULLNULLNULL10000000.00 │
│ Descriptor           │ VARCHAR1 Missed Collection  │ unknown odor/taste…  │          1296 │ … │ NULLNULLNULL10000000.30 │
│ Location TypeVARCHAR1-, 2- and 3- Fami…  │ Wooded Area          │           144 │ … │ NULLNULLNULL100000023.91 │
│ Incident Zip         │ DOUBLE0.0900836.0438 │ … │ 10258.56767006923711136.85945101536711232.65988460328710000000.01 │
│ Incident Address     │ VARCHAR* *                  │ west 155 street an…  │        402568 │ … │ NULLNULLNULL100000017.47 │
│ Street Name          │ VARCHAR*                    │ wyckoff avenue       │         10920 │ … │ NULLNULLNULL100000017.48 │
│ Cross Street 1VARCHAR1 AVE                │ mermaid              │         13602 │ … │ NULLNULLNULL100000032.04 │
│ Cross Street 2VARCHAR1 AVE                │ surf                 │         14335 │ … │ NULLNULLNULL100000032.36 │
│ Intersection Stree…  │ DOUBLE0.05730.013 │ … │ 0.00.00.0100000023.26 │
│ Intersection Stree…  │ DOUBLE0.02641.02 │ … │ 0.00.00.0100000023.23 │
│ Address TypeVARCHAR     │ ADDRESS              │ PLACENAME            │             5 │ … │ NULLNULLNULL100000012.58 │
│ City                 │ VARCHAR*                    │ YORKTOWN HEIGHTS     │           401 │ … │ NULLNULLNULL10000006.20 │
│ Landmark             │ DOUBLE0.00.01 │ … │ 0.00.00.010000008.72 │
│ Facility TypeVARCHAR     │ DSNY Garage          │ School District      │             5 │ … │ NULLNULLNULL100000014.55 │
│ StatusVARCHAR     │ Assigned             │ Unspecified          │            10 │ … │ NULLNULLNULL10000000.00 │
│ Due DateVARCHAR01/01/2010 01:26:0…  │ 12/31/2018 12:59:2…  │        441334 │ … │ NULLNULLNULL100000064.78 │
│ Resolution Descrip…  │ VARCHAR     │ A DOB violation wa…  │ Your request was s…  │          1182 │ … │ NULLNULLNULL10000002.05 │
│ Resolution Action …  │ VARCHAR01/01/2010 01:50:4…  │ 12/31/2019 12:58:0…  │        610175 │ … │ NULLNULLNULL10000001.51 │
│ Community Board      │ VARCHAR0 Unspecified        │ Unspecified STATEN…  │            91 │ … │ NULLNULLNULL10000000.00 │
│ BBL                  │ DOUBLE0.05270000501.0255245 │ … │ 895490913.78056362037490882.84289723065445091.435732410000000.00 │
│ Borough              │ VARCHAR     │ BRONX                │ Unspecified          │             5 │ … │ NULLNULLNULL10000000.00 │
│ X Coordinate (Stat…  │ DOUBLE0.01067220.090189 │ … │ 988948.29581324331002107.9786482681016333.015130990910000000.00 │
│ Y Coordinate (Stat…  │ DOUBLE0.0271876.0115328 │ … │ 174165.58611895636198257.62046094937230180.9825644191310000000.00 │
│ Open Data Channel …  │ VARCHAR     │ MOBILE               │ UNKNOWN              │             5 │ … │ NULLNULLNULL10000000.00 │
│ Park Facility Name   │ VARCHAR"Uncle" Vito F. Ma…  │ Zimmerman Playground │          1855 │ … │ NULLNULLNULL10000000.00 │
│ Park Borough         │ VARCHAR     │ BRONX                │ Unspecified          │             5 │ … │ NULLNULLNULL10000000.00 │
│ Vehicle TypeDOUBLE0.00.01 │ … │ 0.00.00.010000000.03 │
│ Taxi Company Borough │ DOUBLE0.00.01 │ … │ 0.00.00.010000000.08 │
│ Taxi Pick Up Locat…  │ DOUBLE0.00.01 │ … │ 0.00.00.010000000.79 │
│ Bridge Highway Name  │ DOUBLE0.00.01 │ … │ 0.00.00.010000000.23 │
│ Bridge Highway Dir…  │ DOUBLE0.00.01 │ … │ 0.00.00.010000000.23 │
│ Road Ramp            │ DOUBLE0.00.01 │ … │ 0.00.00.010000000.23 │
│ Bridge Highway Seg…  │ DOUBLE0.00.01 │ … │ 0.00.00.010000000.24 │
│ Latitude             │ DOUBLE0.040.9128688361176 │ … │ 0.866540125246388140.6839239232508140.7636148618282410000000.00 │
│ Longitude            │ DOUBLE-77.51958440.0425806 │ … │ -73.95429925066404-73.89697557516627-16.60918654311044310000000.00 │
│ Location             │ VARCHAR(40.1123853, -77.5…  │ (40.9128688, -73.9…  │        381782 │ … │ NULLNULLNULL100000025.47 │
├──────────────────────┴─────────────┴──────────────────────┴──────────────────────┴───────────────┴───┴────────────────────┴────────────────────┴─────────────────────┴─────────┴─────────────────┤
│ 41 rows                                                                                                                                                                    12 columns (10 shown) │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Run Time (s): real 0.518 user 2.484375 sys 0.187500
http://www.xdnf.cn/news/1305721.html

相关文章:

  • expand.exe命令为什么能显示CD.iso的版本信息?
  • 中国象棋人机对战
  • Linux Namespace隔离实战:dd/mkfs/mount/unshare构建终极沙箱
  • Spring Boot 静态函数无法自动注入 Bean?深入解析与解决方案
  • MySQL 主键详解:作用与使用方法
  • 嵌入式:Linux软件编程:线程
  • 【详细操作指南】如何将 Moodle 与编辑器连接,以修改文档、检查和批改作业等
  • 2025年最新油管视频下载,附MassTube下载软件地址
  • 【Canvas与玻璃光】铝圈蓝底玻璃光按钮
  • 华为实验综合小练习
  • YAML:锚点深度解析,告别重复,拥抱优雅的配置艺术
  • 第二十四天:虚函数与纯虚函数
  • 【科研绘图系列】R语言绘制三维曲线图
  • MySQL多表查询案例
  • 关系型数据库从入门到精通:MySQL 核心知识全解析
  • 单片机常用通信协议(一)
  • ubuntu 24.04 通过部署ollama提供大模型api接口
  • Storage.AI解读:构建AI数据基础设施的开放标准
  • 【万字精讲】 左枝清减·右枝丰盈:C++构筑的二叉搜索森林
  • Java 中使用阿里云日志服务(SLS)完整指南
  • nifi 增量处理组件
  • 区块链:用数学重构信任的数字文明基石
  • 【0基础3ds Max】学习计划
  • 007TG洞察:特斯拉Robotaxi成本降低84%?技术驱动的效率革命对营销自动化的启示
  • 以下是对智能电梯控制系统功能及系统云端平台设计要点的详细分析,结合用户提供的梯控系统网络架构设计和系统软硬件组成,分点论述并补充关键要点:
  • 深度解读 Browser-Use:让 AI 驱动浏览器自动化成为可能
  • 初识CNN02——认识CNN2
  • 数据结构初阶:排序算法(二)交换排序
  • Boost库中boost::function函数使用详解
  • Redis面试精讲 Day 22:Redis布隆过滤器应用场景