#!/usr/bin/env python3
# Script to convert HTML files provided by The Online Plain Text English
# Dictionary (http://ift.tt/1oBTnCq) into SQLite database
import sys
import sqlite3
from argparse import ArgumentParser, FileType
from bs4 import BeautifulSoup
def parse_args():
parser = ArgumentParser("Create database from HTML dictionary pages")
parser.add_argument("files", metavar="file", nargs="+", type=FileType("rb"))
parser.add_argument("--out", "-o", required=True)
return parser.parse_args()
def create_tables(conn):
conn.execute("DROP TABLE IF EXISTS words")
conn.execute("CREATE TABLE words (id integer primary key, word text, description text)")
conn.commit()
def words(handle):
doc = BeautifulSoup(handle)
for p in doc.find_all("p"):
if len(p.contents) == 4:
word = p.contents[0].string.lower()
definition = p.contents[3].lstrip(") ").replace("\n", " ")
yield word, definition
def insert_words(conn, iter):
conn.executemany("INSERT INTO words VALUES (NULL, ?, ?)", iter)
def main():
args = parse_args()
db = sqlite3.connect(args.out)
create_tables(db)
for handle in args.files:
print("Processing \"{}\"".format(handle.name), file=sys.stderr)
insert_words(db, words(handle))
db.commit()
db.close()
if __name__ == "__main__":
main()
i tried python my_script.py
but it shows this:
usage: Create database from HTML dictionary pages [-h] --out OUT file [file ...] Create database from HTML dictionary pages: error: the following arguments are r equired: file, --out/-o
i dont use python. i just want to run this script and sorry for bad presentation of code I am new at this.
Aucun commentaire:
Enregistrer un commentaire