Python ISBN号の概要、チェックビット計算、10ビット-13ビット変換、検証、ハイフン、および共通ライブラリisbnid、isbnlib、isbntoolsの使用
5478 ワード
ISBNの概要
仕事の都合でISBNがよく使われる.ISBNは国際標準書番号の略称(International Standard Book Number)で、主に文献、すなわち文献を識別する「身分証明書番号」に用いられ、ISBN番号を調べることで唯一の本を得ることができる.ISBNは大きく10位と13位のISBNに分けられ、2007年1月1日までに10位のISBN、その後に13位のISBNを用いた.両者の最も顕著な違いは、1つは、10ビットISBNの前に「978」または「979」を加えることであり、2つは、チェックビットのアルゴリズムが変化したことである.
ISBNは国際商品コードのサブセットであり、一般的に本の裏表紙に見えるバーコードがISBNである.それに伴って最後のチェックビットも変化した.
現行の13位ISBNを例にとると、9787111267768は『Python学習マニュアル』第3版のISBN号である.ISBN番号は-で区切ることができ、5段に分けることができます.978-7-111-26776-8第1段、978は商品コードである.図書は一般的に978で、新しいのは979で、これは固定的な3位です.第2段、7は国、言語または地域コードである.中国は7で、国別コードは1-5位で、言語や国によって区分され、国別コードが短いほど後で使える番号が多くなり、代表できる出版社や図書が多くなる.第3セグメント、111は出版社コードである.出版社コードは2-5ビットで、コードが短いほど出版できる本が多くなります.例えば111が機械工業出版社のコードネームなので、978-7-111のようなISBNを見ると機械工業出版社が出版した本であることがわかります.第4セグメント、26776は、書順符号化である.ある本の出版社でのコードを指し、直接本を確定することができる.第5セグメント、8はチェックビットです.チェックビットは1ビットのみです.
10ビットISBN検査ビット計算
10ビットISBNのチェック方法は、978と最後のビットを除いて、9ビットの数字を左から右にかけて、それぞれ10から2に乗算した後、和を求め、得られた和を11に対して整除し、残数(すなわち11に対して型取り演算を行う)を得、さらに11で残数を減算することでチェックビットとなる.結果が10であればXで表し,剰余数は0,チェックビットは0である.
例えば、13ビットISBN
13ビットISBN検査ビット計算
13ビットISBNのチェックはパリティを採用している.方法は10ビットチェックビットと類似している.最後のビットのチェックボックスを外し、最初の12ビットの数字を保持します.12桁の数字は左から右へ、奇数桁は1、偶数桁は3を掛けて、それから和を求めて、得られた和は更に10に対して整除して、残数(つまり11に対して型取り演算を行う)を得て、更に10で残数を減らして検査位で、残数は0検査位で0です.13ビットISBNチェックビットは0〜9のみである.
例えば、13ビットISBN
ISBN共通Pythonライブラリ
普通ならハイフネーション付きのISBNははっきり見えますが、みんな怠け者なので、今は各サイトにほとんどハイフネーションがないので、13桁の数字なので、常に変換が必要です.
ネット上にはPython版のISBN処理コードがたくさんありますが、機能は比較的簡単で、例えば上記の13ビットのISBNセグメントは実現するのが面倒なので、できるだけ既製のライブラリを使いましょう.PyPIで調べたところ主流はisbnid,isbnlib,isbntools
機能が最も簡単なのはisbnidで、機能が強いのはisbnlibとisbntoolsで、isbntoolsはisbnlibをカーネルとして使用して、コマンドラインツールを加えて、コードではなく直接使用することができます.
isbnid
インストール:
一般的な使用方法は次のとおりです.
isbnlib
インストール:
一般的な使用方法は次のとおりです.
仕事の都合でISBNがよく使われる.ISBNは国際標準書番号の略称(International Standard Book Number)で、主に文献、すなわち文献を識別する「身分証明書番号」に用いられ、ISBN番号を調べることで唯一の本を得ることができる.ISBNは大きく10位と13位のISBNに分けられ、2007年1月1日までに10位のISBN、その後に13位のISBNを用いた.両者の最も顕著な違いは、1つは、10ビットISBNの前に「978」または「979」を加えることであり、2つは、チェックビットのアルゴリズムが変化したことである.
ISBNは国際商品コードのサブセットであり、一般的に本の裏表紙に見えるバーコードがISBNである.それに伴って最後のチェックビットも変化した.
現行の13位ISBNを例にとると、9787111267768は『Python学習マニュアル』第3版のISBN号である.ISBN番号は-で区切ることができ、5段に分けることができます.978-7-111-26776-8第1段、978は商品コードである.図書は一般的に978で、新しいのは979で、これは固定的な3位です.第2段、7は国、言語または地域コードである.中国は7で、国別コードは1-5位で、言語や国によって区分され、国別コードが短いほど後で使える番号が多くなり、代表できる出版社や図書が多くなる.第3セグメント、111は出版社コードである.出版社コードは2-5ビットで、コードが短いほど出版できる本が多くなります.例えば111が機械工業出版社のコードネームなので、978-7-111のようなISBNを見ると機械工業出版社が出版した本であることがわかります.第4セグメント、26776は、書順符号化である.ある本の出版社でのコードを指し、直接本を確定することができる.第5セグメント、8はチェックビットです.チェックビットは1ビットのみです.
10ビットISBN検査ビット計算
10ビットISBNのチェック方法は、978と最後のビットを除いて、9ビットの数字を左から右にかけて、それぞれ10から2に乗算した後、和を求め、得られた和を11に対して整除し、残数(すなわち11に対して型取り演算を行う)を得、さらに11で残数を減算することでチェックビットとなる.結果が10であればXで表し,剰余数は0,チェックビットは0である.
例えば、13ビットISBN
9787111267768
で10ビットISBNチェックビットの演算を行い、商品コード978とチェックビット8を削除し、中間の9ビットは7111266776である.7*10+1*9+1*8+1*7+2*6+6*5+7*4+7*3+6*2
、および197
197%11
は10
、11-10
は1
、すなわち上記ISBNは10ビットのISBNで7111267761
であるべきである13ビットISBN検査ビット計算
13ビットISBNのチェックはパリティを採用している.方法は10ビットチェックビットと類似している.最後のビットのチェックボックスを外し、最初の12ビットの数字を保持します.12桁の数字は左から右へ、奇数桁は1、偶数桁は3を掛けて、それから和を求めて、得られた和は更に10に対して整除して、残数(つまり11に対して型取り演算を行う)を得て、更に10で残数を減らして検査位で、残数は0検査位で0です.13ビットISBNチェックビットは0〜9のみである.
例えば、13ビットISBN
9787111267768
で13ビットISBNチェックビットの演算を行い、チェックビット8を除いた残りの12ビットは978711126776である.9*1+7*3+8*1+7*3+1*1+1*3+1*1+2*3+6*1+7*3+7*1+6*3
、および122
122%10
は2
、10-2
は8
、すなわち上記ISBNは13ビットのISBNで9787111267768
であるべきであるISBN共通Pythonライブラリ
普通ならハイフネーション付きのISBNははっきり見えますが、みんな怠け者なので、今は各サイトにほとんどハイフネーションがないので、13桁の数字なので、常に変換が必要です.
ネット上にはPython版のISBN処理コードがたくさんありますが、機能は比較的簡単で、例えば上記の13ビットのISBNセグメントは実現するのが面倒なので、できるだけ既製のライブラリを使いましょう.PyPIで調べたところ主流はisbnid,isbnlib,isbntools
機能が最も簡単なのはisbnidで、機能が強いのはisbnlibとisbntoolsで、isbntoolsはisbnlibをカーネルとして使用して、コマンドラインツールを加えて、コードではなく直接使用することができます.
isbnid
インストール:
pip install isbnid
一般的な使用方法は次のとおりです.
# , isbn
import isbn
# , ISBN , ISBN 。 13 ISBN, 10 ISBN 。
isbnid = isbn.ISBN("9787111267768")
# 10 ISBN
isbnid.isbn10()
# '7111267761'
# 13 ISBN
isbnid.isbn13()
# '9787111267768'
# URN
isbnid.urn()
# 'URN:ISBN:9787111267768'
# ISBN
isbnid.hyphen()
# '978-7-111-26776-8'
# ISBN
isbnid.valid("'978-7-111-26776-8'")
# True
isbnlib
インストール:
pip install isbnlib
一般的な使用方法は次のとおりです.
# , isbnlib
import isbnlib
# 13 ISBN
isbnlib.is_isbn13("9787111267768")
# True
# 10 ISBN
isbnlib.is_isbn10("7111267761")
# True
# 10 ISBN 13
isbnlib.to_isbn13("7111267761")
# '9787111267768'
# 13 ISBN 10
isbnlib.to_isbn10("9787111267768")
# '7111267761'
# ISBN , 。
isbnlib.canonical("978-7-111-26-7-76-8")
# '9787111267768'
# ISBN
isbnlib.mask('9787111267768', separator='-')
# '978-7-111-26776-8'
# ISBN
isbnlib.info('9787111267768')
#"China, People's Republic"
# ISBN
isbnlib.get_isbnlike(' ,ISBN:9787111267768 ', level='normal')
# ['9787111267768']
#
isbnlib.clean(' ,ISBN:9787111267768 ')
# 'ISBN9787111267768'
isbnlib
には他にも強力な機能がたくさんありますが、多くはグーグルやアメリカの図書にしか使えません.