| CSVCLEAN(1) | csvkit | CSVCLEAN(1) |
نام (NAME)
csvclean - گزارش و اصلاح خطاهای رایج در یک فایل CSV
توضیحات (DESCRIPTION)
خطاهای رایج در یک فایل CSV را گزارش داده و برطرف میکند.
بررسیها (Checks)
- گزارش ردیفهایی که تعداد ستونهای آنها با ردیف هدر متفاوت است، در صورتی که گزینه --length-mismatch تنظیم شده باشد.
- گزارش ستونهای خالی، در صورتی که گزینه --empty-columns تنظیم شده باشد.
نکته:
اصلاحات (Fixes)
- •
- اگر یک فایل CSV دارای سلولهای فاقد نقلقول باشد که حاوی شکست خط (انتقال به خط بعد) هستند، مانند:
id,address,country 1,1 Main St Springfield,US 2,123 Acadia Avenue London,GB
از --join-short-rows برای تلاش جهت اصلاح خطاها از طریق ادغام ردیفهای کوتاه در یک ردیف استفاده کنید:
id,address,country 1,"1 Main St Springfield",US 2,"123 Acadia Avenue London",GB
برای تغییر رشته مورد استفاده جهت پیوند دادن خطوط، از --separator استفاده کنید. برای مثال با --separator ", ":
id,address,country 1,"1 Main St, Springfield",US 2,"123 Acadia Avenue, London",GB
- •
- اگر یک فایل CSV دارای جداکنندههای ناموجود باشد، مانند:
id,name,country 1,Alice 2,Bob,CA
میتوانید جداکنندههای مفقود را با --fill-short-rows اضافه کنید:
id,name,country 1,Alice, 2,Bob,CA
نکته:
برای تغییر مقداری که برای پر کردن ردیفهای کوتاه استفاده میشود، از --fillvalue استفاده کنید. برای مثال با --fillvalue "US":
id,name,country 1,Alice,US 2,Bob,CA
همچنین ببینید:
توجه:
- کاراکترهای نقلقول اختیاری را حذف میکند، مگر اینکه گزینه --quoting (-u) برای تغییر این رفتار تنظیم شده باشد
- جداکننده فیلدها را به کاما تغییر میدهد، در صورتی که جداکننده ورودی با گزینههای --delimiter (-d) یا --tabs (-t) مشخص شده باشد
- جداکننده رکوردها را به LF (یا \n) تغییر میدهد
- کاراکتر نقلقول را به گیومه دوتایی (double-quotation mark) تغییر میدهد، در صورتی که کاراکتر با گزینه --quotechar (-q) تعیین شده باشد
- رمزگذاری کاراکترها را به UTF-8 تغییر میدهد، در صورتی که رمزگذاری ورودی با گزینه --encoding (-e) تنظیم شده باشد
خروجی (Output)
برنامه csvclean تلاش میکند اصلاحات انتخابشده را اعمال کند. سپس:
- اگر گزینه --omit-error-rows تنظیم شده باشد، فقط ردیفهایی که از بررسیهای انتخابشده عبور کردهاند در خروجی استاندارد نوشته میشوند. در غیر این صورت، تمام ردیفها در خروجی استاندارد نوشته خواهند شد.
- اگر هرگونه بررسی فعال باشد، ردیفهای دارای خطا به همراه شماره خط و توضیحات در خطای استاندارد (stderr) نوشته میشوند. در صورت وجود ردیفهای خطا، کد خروج ۱ خواهد بود.
نحوه استفاده (Usage)
usage: csvclean [-h] [-d DELIMITER] [-t] [-q QUOTECHAR] [-u {0,1,2,3}] [-b]
[-p ESCAPECHAR] [-z FIELD_SIZE_LIMIT] [-e ENCODING] [-S] [-H]
[-K SKIP_LINES] [-v] [-l] [--zero] [-V]
[FILE]
Fix common errors in a CSV file.
positional arguments:
FILE The CSV file to operate on. If omitted, will accept
input as piped data via STDIN.
optional arguments:
-h, --help show this help message and exit
--length-mismatch Report data rows that are shorter or longer than the
header row.
--empty-columns Report empty columns as errors.
-a, --enable-all-checks
Enable all error reporting.
--omit-error-rows Omit data rows that contain errors, from standard
output.
--label LABEL Add a "label" column to standard error. Useful in
automated workflows. Use "-" to default to the input
filename.
--header-normalize-space
Strip leading and trailing whitespace and replace
sequences of whitespace characters by a single space
in the header.
--join-short-rows Merges short rows into a single row.
--separator SEPARATOR
The string with which to join short rows. Defaults to
a newline.
--fill-short-rows Fill short rows with the missing cells.
--fillvalue FILLVALUE
The value with which to fill short rows. Defaults to
none.
همچنین ببینید: آرگومانهای مشترک میان تمام ابزارها.
مثالها (EXAMPLES)
آزمودن فایلی با ردیفهای دادهای که کوتاهتر و بلندتر از ردیف هدر هستند:
$ csvclean examples/bad.csv 2> errors.csv column_a,column_b,column_c 0,mixed types.... uh oh,17 $ cat errors.csv line_number,msg,column_a,column_b,column_c 1,"Expected 3 columns, found 4 columns",1,27,,I'm too long! 2,"Expected 3 columns, found 2 columns",,I'm too short!
توجه:
آزمودن فایلی با ستونهای خالی:
$ csvclean --empty-columns examples/test_empty_columns.csv 2> errors.csv a,b,c,, a,,,, ,,c,, ,,,, $ cat errors.csv line_number,msg,a,b,c,, 1,"Empty columns named 'b', '', ''! Try: csvcut -C 2,4,5",,,,,
استفاده از csvcut برای مستثنی کردن ستونهای خالی:
$ csvcut -C 2,4,5 examples/test_empty_columns.csv a,c a, ,c ,
برای تغییر پایان خط از LF (یا \n) به CRLF (یا \r\n) از دستور زیر استفاده کنید:
csvformat -M $'\r\n' examples/dummy.csv
نویسنده (AUTHOR)
Christopher Groskopf و مشارکتکنندگان
حق نشر (COPYRIGHT)
2016, Christopher Groskopf and James McKinney
| 16 اوت 2024 | 2.2.0 |