日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python常见问题(4):Python库与扩展 Library and Extension FAQ

發布時間:2025/3/21 python 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python常见问题(4):Python库与扩展 Library and Extension FAQ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Contents

  • Library and Extension FAQ
    • General Library Questions
      • How do I find a module or application to perform task X?
      • Where is the math.py (socket.py, regex.py, etc.) source file?
      • How do I make a Python script executable on Unix?
      • Is there a curses/termcap package for Python?
      • Is there an equivalent to C’s onexit() in Python?
      • Why don’t my signal handlers work?
    • Common tasks
      • How do I test a Python program or component?
      • How do I create documentation from doc strings?
      • How do I get a single keypress at a time?
    • Threads
      • How do I program using threads?
      • None of my threads seem to run: why?
      • How do I parcel out work among a bunch of worker threads?
      • What kinds of global value mutation are thread-safe?
      • Can’t we get rid of the Global Interpreter Lock?
    • Input and Output
      • How do I delete a file? (And other file questions...)
      • How do I copy a file?
      • How do I read (or write) binary data?
      • I can’t seem to use os.read() on a pipe created with os.popen(); why?
      • How do I run a subprocess with pipes connected to both input and output?
      • How do I access the serial (RS232) port?
      • Why doesn’t closing sys.stdout (stdin, stderr) really close it?
    • Network/Internet Programming
      • What WWW tools are there for Python?
      • How can I mimic CGI form submission (METHOD=POST)?
      • What module should I use to help with generating HTML?
      • How do I send mail from a Python script?
      • How do I avoid blocking in the connect() method of a socket?
    • Databases
      • Are there any interfaces to database packages in Python?
      • How do you implement persistent objects in Python?
      • Why is cPickle so slow?
      • If my program crashes with a bsddb (or anydbm) database open, it gets corrupted. How come?
      • I tried to open Berkeley DB file, but bsddb produces bsddb.error: (22, ‘Invalid argument’). Help! How can I restore my data?
    • Mathematics and Numerics
      • How do I generate random numbers in Python?

General Library Questions

How do I find a module or application to perform task X?

Check?the Library Reference?to see if there’s a relevant standard library module. (Eventually you’ll learn what’s in the standard library and will be able to skip this step.)

For third-party packages, search the?Python Package Index?or try?Google?or another Web search engine. Searching for “Python” plus a keyword or two for your topic of interest will usually find something helpful.

Where is the math.py (socket.py, regex.py, etc.) source file?

If you can’t find a source file for a module it may be a built-in or dynamically loaded module implemented in C, C++ or other compiled language. In this case you may not have the source file or it may be something like?mathmodule.c, somewhere in a C source directory (not on the Python Path).

There are (at least) three kinds of modules in Python:

  • modules written in Python (.py);

  • modules written in C and dynamically loaded (.dll, .pyd, .so, .sl, etc);

  • modules written in C and linked with the interpreter; to get a list of these, type:

    import sys print sys.builtin_module_names
  • How do I make a Python script executable on Unix?

    You need to do two things: the script file’s mode must be executable and the first line must begin with?#!?followed by the path of the Python interpreter.

    The first is done by executing?chmod?+x?scriptfile?or perhaps?chmod?755?scriptfile.

    The second can be done in a number of ways. The most straightforward way is to write

    #!/usr/local/bin/python

    as the very first line of your file, using the pathname for where the Python interpreter is installed on your platform.

    If you would like the script to be independent of where the Python interpreter lives, you can use the?env?program. Almost all Unix variants support the following, assuming the Python interpreter is in a directory on the user’s?PATH:

    #!/usr/bin/env python

    Don’t?do this for CGI scripts. The?PATH?variable for CGI scripts is often very minimal, so you need to use the actual absolute pathname of the interpreter.

    Occasionally, a user’s environment is so full that the?/usr/bin/env?program fails; or there’s no env program at all. In that case, you can try the following hack (due to Alex Rezinsky):

    #! /bin/sh """:" exec python $0 ${1+"$@"} """

    The minor disadvantage is that this defines the script’s __doc__ string. However, you can fix that by adding

    __doc__ = """...Whatever..."""

    Is there a curses/termcap package for Python?

    For Unix variants the standard Python source distribution comes with a curses module in the?Modules?subdirectory, though it’s not compiled by default. (Note that this is not available in the Windows distribution – there is no curses module for Windows.)

    The?curses?module supports basic curses features as well as many additional functions from ncurses and SYSV curses such as colour, alternative character set support, pads, and mouse support. This means the module isn’t compatible with operating systems that only have BSD curses, but there don’t seem to be any currently maintained OSes that fall into this category.

    For Windows: use?the consolelib module.

    Is there an equivalent to C’s onexit() in Python?

    The?atexit?module provides a register function that is similar to C’s?onexit().

    Why don’t my signal handlers work?

    The most common problem is that the signal handler is declared with the wrong argument list. It is called as

    handler(signum, frame)

    so it should be declared with two arguments:

    def handler(signum, frame):...

    Common tasks

    How do I test a Python program or component?

    Python comes with two testing frameworks. The?doctest?module finds examples in the docstrings for a module and runs them, comparing the output with the expected output given in the docstring.

    The?unittest?module is a fancier testing framework modelled on Java and Smalltalk testing frameworks.

    To make testing easier, you should use good modular design in your program. Your program should have almost all functionality encapsulated in either functions or class methods – and this sometimes has the surprising and delightful effect of making the program run faster (because local variable accesses are faster than global accesses). Furthermore the program should avoid depending on mutating global variables, since this makes testing much more difficult to do.

    The “global main logic” of your program may be as simple as

    if __name__ == "__main__":main_logic()

    at the bottom of the main module of your program.

    Once your program is organized as a tractable collection of functions and class behaviours you should write test functions that exercise the behaviours. A test suite that automates a sequence of tests can be associated with each module. This sounds like a lot of work, but since Python is so terse and flexible it’s surprisingly easy. You can make coding much more pleasant and fun by writing your test functions in parallel with the “production code”, since this makes it easy to find bugs and even design flaws earlier.

    “Support modules” that are not intended to be the main module of a program may include a self-test of the module.

    if __name__ == "__main__":self_test()

    Even programs that interact with complex external interfaces may be tested when the external interfaces are unavailable by using “fake” interfaces implemented in Python.

    How do I create documentation from doc strings?

    The?pydoc?module can create HTML from the doc strings in your Python source code. An alternative for creating API documentation purely from docstrings is?epydoc.?Sphinx?can also include docstring content.

    How do I get a single keypress at a time?

    For Unix variants there are several solutions. It’s straightforward to do this using curses, but curses is a fairly large module to learn. Here’s a solution without curses:

    import termios, fcntl, sys, os fd = sys.stdin.fileno()oldterm = termios.tcgetattr(fd) newattr = termios.tcgetattr(fd) newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO termios.tcsetattr(fd, termios.TCSANOW, newattr)oldflags = fcntl.fcntl(fd, fcntl.F_GETFL) fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)try:while 1:try:c = sys.stdin.read(1)print "Got character", repr(c)except IOError: pass finally:termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)

    You need the?termios?and the?fcntl?module for any of this to work, and I’ve only tried it on Linux, though it should work elsewhere. In this code, characters are read and printed one at a time.

    termios.tcsetattr()?turns off stdin’s echoing and disables canonical mode.?fcntl.fnctl()?is used to obtain stdin’s file descriptor flags and modify them for non-blocking mode. Since reading stdin when it is empty results in an?IOError, this error is caught and ignored.

    Threads

    How do I program using threads?

    Be sure to use the?threading?module and not the?thread?module. The?threading?module builds convenient abstractions on top of the low-level primitives provided by the?thread?module.

    Aahz has a set of slides from his threading tutorial that are helpful; see?http://www.pythoncraft.com/OSCON2001/.

    None of my threads seem to run: why?

    As soon as the main thread exits, all threads are killed. Your main thread is running too quickly, giving the threads no time to do any work.

    A simple fix is to add a sleep to the end of the program that’s long enough for all the threads to finish:

    import threading, timedef thread_task(name, n):for i in range(n): print name, ifor i in range(10):T = threading.Thread(target=thread_task, args=(str(i), i))T.start()time.sleep(10) # <----------------------------!

    But now (on many platforms) the threads don’t run in parallel, but appear to run sequentially, one at a time! The reason is that the OS thread scheduler doesn’t start a new thread until the previous thread is blocked.

    A simple fix is to add a tiny sleep to the start of the run function:

    def thread_task(name, n):time.sleep(0.001) # <---------------------!for i in range(n): print name, ifor i in range(10):T = threading.Thread(target=thread_task, args=(str(i), i))T.start()time.sleep(10)

    Instead of trying to guess a good delay value for?time.sleep(), it’s better to use some kind of semaphore mechanism. One idea is to use the?Queue?module to create a queue object, let each thread append a token to the queue when it finishes, and let the main thread read as many tokens from the queue as there are threads.

    How do I parcel out work among a bunch of worker threads?

    Use the?Queue?module to create a queue containing a list of jobs. The?Queue?class maintains a list of objects and has a?.put(obj)?method that adds items to the queue and a?.get()?method to return them. The class will take care of the locking necessary to ensure that each job is handed out exactly once.

    Here’s a trivial example:

    import threading, Queue, time# The worker thread gets jobs off the queue. When the queue is empty, it # assumes there will be no more work and exits. # (Realistically workers will run until terminated.) def worker():print 'Running worker'time.sleep(0.1)while True:try:arg = q.get(block=False)except Queue.Empty:print 'Worker', threading.currentThread(),print 'queue empty'breakelse:print 'Worker', threading.currentThread(),print 'running with argument', argtime.sleep(0.5)# Create queue q = Queue.Queue()# Start a pool of 5 workers for i in range(5):t = threading.Thread(target=worker, name='worker %i' % (i+1))t.start()# Begin adding work to the queue for i in range(50):q.put(i)# Give threads time to run print 'Main thread sleeping' time.sleep(5)

    When run, this will produce the following output:

    Running worker Running worker Running worker Running worker Running worker Main thread sleeping Worker <Thread(worker 1, started)> running with argument 0 Worker <Thread(worker 2, started)> running with argument 1 Worker <Thread(worker 3, started)> running with argument 2 Worker <Thread(worker 4, started)> running with argument 3 Worker <Thread(worker 5, started)> running with argument 4 Worker <Thread(worker 1, started)> running with argument 5 ...

    Consult the module’s documentation for more details; the?Queue?class provides a featureful interface.

    What kinds of global value mutation are thread-safe?

    A?global interpreter lock?(GIL) is used internally to ensure that only one thread runs in the Python VM at a time. In general, Python offers to switch among threads only between bytecode instructions; how frequently it switches can be set via?sys.setcheckinterval(). Each bytecode instruction and therefore all the C implementation code reached from each instruction is therefore atomic from the point of view of a Python program.

    In theory, this means an exact accounting requires an exact understanding of the PVM bytecode implementation. In practice, it means that operations on shared variables of built-in data types (ints, lists, dicts, etc) that “look atomic” really are.

    For example, the following operations are all atomic (L, L1, L2 are lists, D, D1, D2 are dicts, x, y are objects, i, j are ints):

    L.append(x) L1.extend(L2) x = L[i] x = L.pop() L1[i:j] = L2 L.sort() x = y x.field = y D[x] = y D1.update(D2) D.keys()

    These aren’t:

    i = i+1 L.append(L[-1]) L[i] = L[j] D[x] = D[x] + 1

    Operations that replace other objects may invoke those other objects’?__del__()?method when their reference count reaches zero, and that can affect things. This is especially true for the mass updates to dictionaries and lists. When in doubt, use a mutex!

    Can’t we get rid of the Global Interpreter Lock?

    The?global interpreter lock?(GIL) is often seen as a hindrance to Python’s deployment on high-end multiprocessor server machines, because a multi-threaded Python program effectively only uses one CPU, due to the insistence that (almost) all Python code can only run while the GIL is held.

    Back in the days of Python 1.5, Greg Stein actually implemented a comprehensive patch set (the “free threading” patches) that removed the GIL and replaced it with fine-grained locking. Unfortunately, even on Windows (where locks are very efficient) this ran ordinary Python code about twice as slow as the interpreter using the GIL. On Linux the performance loss was even worse because pthread locks aren’t as efficient.

    Since then, the idea of getting rid of the GIL has occasionally come up but nobody has found a way to deal with the expected slowdown, and users who don’t use threads would not be happy if their code ran at half the speed. Greg’s free threading patch set has not been kept up-to-date for later Python versions.

    This doesn’t mean that you can’t make good use of Python on multi-CPU machines! You just have to be creative with dividing the work up between multiple?processes?rather than multiple?threads. Judicious use of C extensions will also help; if you use a C extension to perform a time-consuming task, the extension can release the GIL while the thread of execution is in the C code and allow other threads to get some work done.

    It has been suggested that the GIL should be a per-interpreter-state lock rather than truly global; interpreters then wouldn’t be able to share objects. Unfortunately, this isn’t likely to happen either. It would be a tremendous amount of work, because many object implementations currently have global state. For example, small integers and short strings are cached; these caches would have to be moved to the interpreter state. Other object types have their own free list; these free lists would have to be moved to the interpreter state. And so on.

    And I doubt that it can even be done in finite time, because the same problem exists for 3rd party extensions. It is likely that 3rd party extensions are being written at a faster rate than you can convert them to store all their global state in the interpreter state.

    And finally, once you have multiple interpreters not sharing any state, what have you gained over running each interpreter in a separate process?

    Input and Output

    How do I delete a file? (And other file questions...)

    Use?os.remove(filename)?or?os.unlink(filename); for documentation, see the?os?module. The two functions are identical;?unlink()?is simply the name of the Unix system call for this function.

    To remove a directory, use?os.rmdir(); use?os.mkdir()?to create one.?os.makedirs(path)?will create any intermediate directories in?path?that don’t exist.?os.removedirs(path)?will remove intermediate directories as long as they’re empty; if you want to delete an entire directory tree and its contents, use?shutil.rmtree().

    To rename a file, use?os.rename(old_path,?new_path).

    To truncate a file, open it using?f?=?open(filename,?"r+"), and use?f.truncate(offset); offset defaults to the current seek position. There’s also?os.ftruncate(fd,?offset)?for files opened with?os.open(), where?fd?is the file descriptor (a small integer).

    The?shutil?module also contains a number of functions to work on files including?copyfile(),?copytree(), and?rmtree().

    How do I copy a file?

    The?shutil?module contains a?copyfile()?function. Note that on MacOS 9 it doesn’t copy the resource fork and Finder info.

    How do I read (or write) binary data?

    To read or write complex binary data formats, it’s best to use the?struct?module. It allows you to take a string containing binary data (usually numbers) and convert it to Python objects; and vice versa.

    For example, the following code reads two 2-byte integers and one 4-byte integer in big-endian format from a file:

    import structf = open(filename, "rb") # Open in binary mode for portability s = f.read(8) x, y, z = struct.unpack(">hhl", s)

    The ‘>’ in the format string forces big-endian data; the letter ‘h’ reads one “short integer” (2 bytes), and ‘l’ reads one “long integer” (4 bytes) from the string.

    For data that is more regular (e.g. a homogeneous list of ints or floats), you can also use the?array?module.

    I can’t seem to use os.read() on a pipe created with os.popen(); why?

    os.read()?is a low-level function which takes a file descriptor, a small integer representing the opened file.?os.popen()?creates a high-level file object, the same type returned by the built-in?open()?function. Thus, to read?n?bytes from a pipe?p?created with?os.popen(), you need to use?p.read(n).

    How do I run a subprocess with pipes connected to both input and output?

    Use the?popen2?module. For example:

    import popen2 fromchild, tochild = popen2.popen2("command") tochild.write("input\n") tochild.flush() output = fromchild.readline()

    Warning: in general it is unwise to do this because you can easily cause a deadlock where your process is blocked waiting for output from the child while the child is blocked waiting for input from you. This can be caused by the parent expecting the child to output more text than it does or by data being stuck in stdio buffers due to lack of flushing. The Python parent can of course explicitly flush the data it sends to the child before it reads any output, but if the child is a naive C program it may have been written to never explicitly flush its output, even if it is interactive, since flushing is normally automatic.

    Note that a deadlock is also possible if you use?popen3()?to read stdout and stderr. If one of the two is too large for the internal buffer (increasing the buffer size does not help) and you?read()?the other one first, there is a deadlock, too.

    Note on a bug in popen2: unless your program calls?wait()?or?waitpid(), finished child processes are never removed, and eventually calls to popen2 will fail because of a limit on the number of child processes. Calling?os.waitpid()?with the?os.WNOHANG?option can prevent this; a good place to insert such a call would be before calling?popen2?again.

    In many cases, all you really need is to run some data through a command and get the result back. Unless the amount of data is very large, the easiest way to do this is to write it to a temporary file and run the command with that temporary file as input. The standard module?tempfile?exports a?mktemp()?function to generate unique temporary file names.

    import tempfile import osclass Popen3:""" This is a deadlock-safe version of popen that returns an object with errorlevel, out (a string) and err (a string). (capturestderr may not work under windows.) Example: print Popen3('grep spam','\n\nhere spam\n\n').out """def __init__(self,command,input=None,capturestderr=None):outfile=tempfile.mktemp()command="( %s ) > %s" % (command,outfile)if input:infile=tempfile.mktemp()open(infile,"w").write(input)command=command+" <"+infileif capturestderr:errfile=tempfile.mktemp()command=command+" 2>"+errfileself.errorlevel=os.system(command) >> 8self.out=open(outfile,"r").read()os.remove(outfile)if input:os.remove(infile)if capturestderr:self.err=open(errfile,"r").read()os.remove(errfile)

    Note that many interactive programs (e.g. vi) don’t work well with pipes substituted for standard input and output. You will have to use pseudo ttys (“ptys”) instead of pipes. Or you can use a Python interface to Don Libes’ “expect” library. A Python extension that interfaces to expect is called “expy” and available from?http://expectpy.sourceforge.net. A pure Python solution that works like expect is?pexpect.

    How do I access the serial (RS232) port?

    For Win32, POSIX (Linux, BSD, etc.), Jython:

    http://pyserial.sourceforge.net

    For Unix, see a Usenet post by Mitch Chapman:

    https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com

    Why doesn’t closing sys.stdout (stdin, stderr) really close it?

    Python file objects are a high-level layer of abstraction on top of C streams, which in turn are a medium-level layer of abstraction on top of (among other things) low-level C file descriptors.

    For most file objects you create in Python via the built-in?file?constructor,?f.close()?marks the Python file object as being closed from Python’s point of view, and also arranges to close the underlying C stream. This also happens automatically in?f‘s destructor, when?fbecomes garbage.

    But stdin, stdout and stderr are treated specially by Python, because of the special status also given to them by C. Runningsys.stdout.close()?marks the Python-level file object as being closed, but does?not?close the associated C stream.

    To close the underlying C stream for one of these three, you should first be sure that’s what you really want to do (e.g., you may confuse extension modules trying to do I/O). If it is, use os.close:

    os.close(0) # close C's stdin stream os.close(1) # close C's stdout stream os.close(2) # close C's stderr stream

    Network/Internet Programming

    What WWW tools are there for Python?

    See the chapters titled?Internet Protocols and Support?and?Internet Data Handling?in the Library Reference Manual. Python has many modules that will help you build server-side and client-side web systems.

    A summary of available frameworks is maintained by Paul Boddie at?https://wiki.python.org/moin/WebProgramming.

    Cameron Laird maintains a useful set of pages about Python web technologies at?http://phaseit.net/claird/comp.lang.python/web_python.

    How can I mimic CGI form submission (METHOD=POST)?

    I would like to retrieve web pages that are the result of POSTing a form. Is there existing code that would let me do this easily?

    Yes. Here’s a simple example that uses httplib:

    #!/usr/local/bin/pythonimport httplib, sys, time# build the query string qs = "First=Josephine&MI=Q&Last=Public"# connect and send the server a path httpobj = httplib.HTTP('www.some-server.out-there', 80) httpobj.putrequest('POST', '/cgi-bin/some-cgi-script') # now generate the rest of the HTTP headers... httpobj.putheader('Accept', '*/*') httpobj.putheader('Connection', 'Keep-Alive') httpobj.putheader('Content-type', 'application/x-www-form-urlencoded') httpobj.putheader('Content-length', '%d' % len(qs)) httpobj.endheaders() httpobj.send(qs) # find out what the server said in response... reply, msg, hdrs = httpobj.getreply() if reply != 200:sys.stdout.write(httpobj.getfile().read())

    Note that in general for percent-encoded POST operations, query strings must be quoted using?urllib.urlencode(). For example, to sendname=Guy?Steele,?Jr.:

    >>> >>> import urllib >>> urllib.urlencode({'name': 'Guy Steele, Jr.'}) 'name=Guy+Steele%2C+Jr.'

    What module should I use to help with generating HTML?

    You can find a collection of useful links on the?Web Programming wiki page.

    How do I send mail from a Python script?

    Use the standard library module?smtplib.

    Here’s a very simple interactive mail sender that uses it. This method will work on any host that supports an SMTP listener.

    import sys, smtplibfromaddr = raw_input("From: ") toaddrs = raw_input("To: ").split(',') print "Enter message, end with ^D:" msg = '' while True:line = sys.stdin.readline()if not line:breakmsg += line# The actual mail send server = smtplib.SMTP('localhost') server.sendmail(fromaddr, toaddrs, msg) server.quit()

    A Unix-only alternative uses sendmail. The location of the sendmail program varies between systems; sometimes it is?/usr/lib/sendmail, sometimes?/usr/sbin/sendmail. The sendmail manual page will help you out. Here’s some sample code:

    import osSENDMAIL = "/usr/sbin/sendmail" # sendmail location p = os.popen("%s -t -i" % SENDMAIL, "w") p.write("To: receiver@example.com\n") p.write("Subject: test\n") p.write("\n") # blank line separating headers from body p.write("Some text\n") p.write("some more text\n") sts = p.close() if sts != 0:print "Sendmail exit status", sts

    How do I avoid blocking in the connect() method of a socket?

    The select module is commonly used to help with asynchronous I/O on sockets.

    To prevent the TCP connect from blocking, you can set the socket to non-blocking mode. Then when you do the?connect(), you will either connect immediately (unlikely) or get an exception that contains the error number as?.errno.?errno.EINPROGRESS?indicates that the connection is in progress, but hasn’t finished yet. Different OSes will return different values, so you’re going to have to check what’s returned on your system.

    You can use the?connect_ex()?method to avoid creating an exception. It will just return the errno value. To poll, you can call?connect_ex()again later – 0 or?errno.EISCONN?indicate that you’re connected – or you can pass this socket to select to check if it’s writable.

    Databases

    Are there any interfaces to database packages in Python?

    Yes.

    Python 2.3 includes the?bsddb?package which provides an interface to the BerkeleyDB library. Interfaces to disk-based hashes such as?DBMand?GDBM?are also included with standard Python.

    Support for most relational databases is available. See the?DatabaseProgramming wiki page?for details.

    How do you implement persistent objects in Python?

    The?pickle?library module solves this in a very general way (though you still can’t store things like open files, sockets or windows), and the?shelve?library module uses pickle and (g)dbm to create persistent mappings containing arbitrary Python objects. For better performance, you can use the?cPickle?module.

    A more awkward way of doing things is to use pickle’s little sister, marshal. The?marshal?module provides very fast ways to store noncircular basic Python types to files and strings, and back again. Although marshal does not do fancy things like store instances or handle shared references properly, it does run extremely fast. For example, loading a half megabyte of data may take less than a third of a second. This often beats doing something more complex and general such as using gdbm with pickle/shelve.

    Why is cPickle so slow?

    By default?pickle?uses a relatively old and slow format for backward compatibility. You can however specify other protocol versions that are faster:

    largeString = 'z' * (100 * 1024) myPickle = cPickle.dumps(largeString, protocol=1)

    If my program crashes with a bsddb (or anydbm) database open, it gets corrupted. How come?

    Databases opened for write access with the bsddb module (and often by the anydbm module, since it will preferentially use bsddb) must explicitly be closed using the?.close()?method of the database. The underlying library caches database contents which need to be converted to on-disk form and written.

    If you have initialized a new bsddb database but not written anything to it before the program crashes, you will often wind up with a zero-length file and encounter an exception the next time the file is opened.

    I tried to open Berkeley DB file, but bsddb produces bsddb.error: (22, ‘Invalid argument’). Help! How can I restore my data?

    Don’t panic! Your data is probably intact. The most frequent cause for the error is that you tried to open an earlier Berkeley DB file with a later version of the Berkeley DB library.

    Many Linux systems now have all three versions of Berkeley DB available. If you are migrating from version 1 to a newer version use db_dump185 to dump a plain text version of the database. If you are migrating from version 2 to version 3 use db2_dump to create a plain text version of the database. In either case, use db_load to create a new native database for the latest version installed on your computer. If you have version 3 of Berkeley DB installed, you should be able to use db2_load to create a native version 2 database.

    You should move away from Berkeley DB version 1 files because the hash file code contains known bugs that can corrupt your data.

    Mathematics and Numerics

    How do I generate random numbers in Python?

    The standard module?random?implements a random number generator. Usage is simple:

    import random random.random()

    This returns a random floating point number in the range [0, 1).

    There are also many other specialized generators in this module, such as:

    • randrange(a,?b)?chooses an integer in the range [a, b).
    • uniform(a,?b)?chooses a floating point number in the range [a, b).
    • normalvariate(mean,?sdev)?samples the normal (Gaussian) distribution.

    Some higher-level functions operate on sequences directly, such as:

    • choice(S)?chooses random element from a given sequence
    • shuffle(L)?shuffles a list in-place, i.e. permutes it randomly

    There’s also a?Random?class you can instantiate to create independent multiple random number generators.


    from:?https://docs.python.org/2/faq/library.html

    總結

    以上是生活随笔為你收集整理的Python常见问题(4):Python库与扩展 Library and Extension FAQ的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产片免费在线观看视频 | 免费观看的黄色 | 天天干.com | 五月天婷婷综合 | 欧美激情视频在线观看免费 | 黄色亚洲大片免费在线观看 | 国产视频91在线 | 青青河边草手机免费 | 99热99| 国产精品丝袜久久久久久久不卡 | 国产资源免费 | 中文字幕在线视频网站 | 日韩有码中文字幕在线 | 在线观看日韩精品 | 亚洲,播放| 97在线观看免费高清完整版在线观看 | 天天操天天色天天射 | 国产一性一爱一乱一交 | 国产麻豆精品传媒av国产下载 | 亚州精品在线视频 | 六月婷婷久香在线视频 | 亚洲麻豆精品 | 日韩xxx视频 | 久久精品—区二区三区 | 婷婷成人亚洲综合国产xv88 | a级国产乱理论片在线观看 特级毛片在线观看 | 国产99久久久精品 | 中文字幕在线观看一区二区三区 | 国产va饥渴难耐女保洁员在线观看 | 免费视频一二三区 | 免费色视频在线 | 久久久黄色免费网站 | 99视频免费观看 | 亚洲成人xxx | 激情动态| 激情网站网址 | a在线免费 | 成人影音在线 | 日韩久久久久久久久久 | 亚洲精品乱码久久久久v最新版 | 曰韩在线 | 亚洲综合在线一区二区三区 | 亚洲经典中文字幕 | 国内精品久久久久久久久久清纯 | 日韩特级黄色片 | 国产精品网红福利 | 亚洲女在线 | 亚洲一区二区三区91 | 国产精品久久久久永久免费 | 91精品在线视频观看 | 99精品欧美一区二区蜜桃免费 | 成人午夜在线观看 | 97免费在线观看视频 | 91精品在线观看视频 | 久久99精品一区二区三区三区 | 免费91在线观看 | 成人免费观看大片 | 97**国产露脸精品国产 | 国产一二区精品 | av免费观看网站 | 一区二区不卡视频在线观看 | 美女av电影 | 91九色国产在线 | 五月婷婷开心 | 天天色天天操综合网 | 久草在线官网 | 久久精品99国产精品亚洲最刺激 | 又黄又刺激又爽的视频 | 国内丰满少妇猛烈精品播 | 成人av片免费观看app下载 | 国产在线观看h | 国产偷v国产偷∨精品视频 在线草 | 精品国内 | 亚洲精品高清视频 | 91黄色成人 | 99欧美视频| 久久国产精品免费 | 在线看片视频 | 久久精品国产v日韩v亚洲 | 日韩av影视在线观看 | 88av视频| 亚洲欧美少妇 | 麻豆一二 | 狠狠狠狠狠狠操 | 天天干天天玩天天操 | a电影在线观看 | 欧美日韩高清一区二区 国产亚洲免费看 | 97在线观看免费高清 | 久久久久亚洲最大xxxx | 五月婷婷导航 | 91中文在线视频 | 91丨九色丨国产女 | 91爱爱视频 | 精品你懂的 | 特级西西444www大精品视频免费看 | 成人羞羞视频在线观看免费 | 国产91丝袜在线播放动漫 | 国内精品亚洲 | 亚洲国产操 | 波多野结衣久久资源 | 亚洲精品9 | 成人免费 在线播放 | 中日韩免费视频 | 精品美女久久久久久免费 | 国产三级国产精品国产专区50 | 亚洲精品乱码久久久久久蜜桃动漫 | www.久草.com | 亚洲精品午夜一区人人爽 | 亚洲美女视频在线观看 | 久久久久久久久久久久99 | 中文在线免费观看 | 日韩电影在线观看中文字幕 | av中文字幕网站 | 午夜成人影视 | 天天操天天操天天操天天 | 91丨九色丨高潮丰满 | 亚洲精品美女在线观看播放 | 久久在线免费 | 欧洲亚洲女同hd | av中文字幕网站 | 99国产在线观看 | 999视频网站 | 天天摸天天干天天操天天射 | 91私密保健| 久久婷婷五月综合色丁香 | 97超碰色偷偷 | 欧美大片在线看免费观看 | 亚洲精品视频中文字幕 | 国产成人精品久久久久蜜臀 | 日韩av一区二区在线 | 欧美一级乱黄 | 久久99久久精品 | 美女视频网 | 91精彩在线视频 | 日韩精品一区二区久久 | 人人搞人人干 | 综合网欧美 | 日韩激情在线 | 日本一区二区三区视频在线播放 | 日日爱网站 | 伊人电影天堂 | 天天干夜夜干 | 久久撸在线视频 | 中文字幕在线高清 | 国产精品99久久久久久武松影视 | 亚洲欧美激情精品一区二区 | 91精品久久久久久 | 国产中文欧美日韩在线 | 精品免费| 久久亚洲福利 | 亚洲一级二级 | 美女福利视频在线 | 日韩精品一区二区三区免费观看视频 | 国产精品亚洲综合久久 | 亚洲japanese制服美女 | 欧美片一区二区三区 | 久久久久观看 | 99热手机在线 | 人人搞人人干 | 日韩毛片在线一区二区毛片 | www.狠狠色.com | 九九九在线 | 国产精品资源 | 免费观看性生活大片3 | 色综合久久久网 | 中文av日韩 | 国产精品美女久久久久久 | 天堂av影院 | 中文字幕精品在线 | 中文伊人| 91精品国自产在线偷拍蜜桃 | 99久久精品免费看国产免费软件 | 99综合电影在线视频 | 色综合天天狠天天透天天伊人 | 激情小说网站亚洲综合网 | 精品国产一区二区三区久久久蜜月 | 成年人在线免费看片 | 久久精品网址 | 免费视频国产 | 欧美另类性 | 国产精品美女久久久久久久 | 色狠狠综合天天综合综合 | 天天色天天干天天色 | 一区二区三区免费播放 | 99精品在线视频播放 | www.在线观看av | 黄色福利网| 玖玖视频在线 | 亚洲影视九九影院在线观看 | av高清一区 | 99热在线观看 | 日韩高清成人在线 | 在线观看av中文字幕 | 天天爽天天做 | 天堂久久电影网 | 日韩精品中文字幕有码 | 日本性生活一级片 | 五月婷婷丁香激情 | 99产精品成人啪免费网站 | 精品免费国产一区二区三区四区 | 久久久精品欧美一区二区免费 | 91九色国产在线 | 2023亚洲精品国偷拍自产在线 | 国产在线一线 | 国产精品久久久久久久久久久免费 | 97超碰中文字幕 | 国产精品久久久久久久午夜片 | 丁香久久久 | 天天干天天干天天干天天干天天干天天干 | 九九精品无码 | 99c视频在线 | 免费在线观看午夜视频 | 色综合www | 久久久www成人免费精品张筱雨 | 国产精品美女久久久久久久 | 久久激五月天综合精品 | 人人爽人人干 | 亚洲精品tv | 日韩在线大片 | 国产精彩视频一区二区 | 日韩av中文字幕在线免费观看 | 在线观看免费国产小视频 | 免费高清在线一区 | 天天操天天草 | 国产精品区在线观看 | 国产精品久久久久久久久久99 | 欧美一级网站 | 久久激情片 | 91成熟丰满女人少妇 | 综合色中色 | www免费在线观看 | 99久久精品免费看国产麻豆 | 久久久久久久99 | 最新91在线视频 | 99在线视频播放 | 国产精品麻豆一区二区三区 | 日韩三级在线观看 | 午夜av电影| 日韩av一区二区三区在线观看 | 亚洲国产精品500在线观看 | 黄色一级免费电影 | 国产色网 | 亚洲成av | 91在线九色 | 日韩xxxx视频 | 男女啪啪网站 | 日韩免费视频一区二区 | 亚洲,国产成人av | 婷婷色九月 | 久久免费视频一区 | 18国产精品白浆在线观看免费 | 99视频免费看 | 在线观看国产高清视频 | 97人人超碰在线 | 96久久欧美麻豆网站 | 91在线播放综合 | 中文字幕资源网 国产 | 99精品国产一区二区三区麻豆 | 日韩欧美aaa | 国产精品视频久久久 | 国产亚洲视频在线观看 | 欧美一级乱黄 | 伊人官网| 国模一区二区三区四区 | 婷婷精品在线 | 2021久久| 99国产精品久久久久老师 | 久久久久国产精品视频 | 国产精品美女久久久久久久久 | 久久精品亚洲一区二区三区观看模式 | 免费能看的av | 久久tv视频 | 手机看片福利 | 97在线观| 久久精品国产亚洲精品2020 | 最近最新中文字幕视频 | 国产成人av免费在线观看 | 亚洲成人资源网 | 欧美aaa级片 | 91亚洲综合 | 精品高清美女精品国产区 | 在线不卡a | 国产成人精品一区二区三区网站观看 | 亚洲成人资源在线 | 91视频91自拍 | 亚洲另类久久 | 亚洲二区精品 | 青青久草在线视频 | 午夜私人影院久久久久 | 日韩精品久久久免费观看夜色 | 国产精品久久久久久久久软件 | 久久激情电影 | 成人av网站在线播放 | 精品一区二区影视 | 天天天干天天天操 | 亚洲精品www久久久 www国产精品com | 欧美日韩电影在线播放 | 黄色大片免费播放 | 91.精品高清在线观看 | 日韩精品中文字幕一区二区 | 日韩国产精品久久久久久亚洲 | 日韩特级黄色片 | va视频在线 | 精品国产电影 | 午夜精品一区二区三区视频免费看 | 在线观看完整版免费 | 99久久久久久久久久 | 成年人免费在线观看网站 | 久久久久久久久久伊人 | 日韩高清免费观看 | 黄色小说网站在线 | 成人精品在线 | 国产视频91在线 | 九九热在线免费观看 | 91在线视频免费观看 | 日韩av成人| 成年人黄色大片在线 | 亚洲综合成人在线 | 中文字幕av一区二区三区四区 | 国产九九在线 | 国产三级久久久 | 亚洲一区视频在线播放 | 国产精品av免费在线观看 | 久久精品免费电影 | 久久艹欧美| 久久一线| 激情av网址| 黄色国产成人 | 97福利 | 久久久视屏 | 久热国产视频 | 毛片美女网站 | 操操操影院 | 在线观看国产亚洲 | 中文视频一区二区 | 91av视屏 | 天天射天天艹 | 日批网站免费观看 | 日本丰满少妇免费一区 | 九九热免费精品视频 | 亚洲va韩国va欧美va精四季 | 国产香蕉97碰碰碰视频在线观看 | 蜜臀久久99精品久久久久久网站 | 亚洲精品久久久久久国 | 国产精品男女视频 | 国产精品观看 | 91精品视频网站 | 久久不卡国产精品一区二区 | 久久草精品 | www免费网站在线观看 | 91女人18片女毛片60分钟 | 91精品国产综合久久久久久久 | 天天干天天操人体 | 精品国产色 | 国产三级国产精品国产专区50 | bbbb操bbbb| 亚洲一区二区高潮无套美女 | 久草亚洲视频 | 99精品久久久久 | 中文字幕在线视频一区二区 | 最近中文字幕视频网 | 久久久久久久久免费 | 中文字幕综合在线 | 久久少妇免费视频 | 涩涩网站在线播放 | 国产精品毛片一区二区三区 | 国产手机免费视频 | 天天草天天草 | 国产手机视频在线播放 | 美女视频黄在线 | 欧美一区二区免费在线观看 | 91高清免费观看 | 久久精品老司机 | 日韩成人xxxx | 天天操天天爱天天爽 | 亚洲九九九在线观看 | 免费影视大全推荐 | 国内精品小视频 | 国产美女精品视频 | 欧美日韩中文在线视频 | 成人黄色片免费看 | 在线中文字幕一区二区 | 九九热久久久 | 久久小视频| 美女视频a美女大全免费下载蜜臀 | 日日夜夜免费精品视频 | 9999精品视频 | 国产亚洲成人网 | 欧美成人免费在线 | 综合精品久久久 | 亚洲欧美成人综合 | 亚洲成人资源网 | 国模视频一区二区 | 丝袜+亚洲+另类+欧美+变态 | 狠狠干天天 | 不卡视频一区二区三区 | 中文字幕一区二区三区久久蜜桃 | 久久大片网站 | 免费久久久久久 | 中文字幕一二三区 | 丁香视频全集免费观看 | a视频免费在线观看 | 久久久久女人精品毛片九一 | 九九九在线 | 日韩精品视频免费专区在线播放 | 丁香六月中文字幕 | 丰满少妇久久久 | 在线蜜桃视频 | 亚洲国产日韩av | 最近中文字幕免费大全 | 免费在线观看毛片网站 | 久草在线视频首页 | 福利电影久久 | 在线视频日韩一区 | 亚洲激情综合 | 国产精品永久免费在线 | 久久久久免费网站 | www.香蕉| 高清有码中文字幕 | 黄色毛片大全 | 色偷偷88888欧美精品久久久 | 国产大尺度视频 | 免费无遮挡动漫网站 | 久久综合婷婷 | 精品久久久久久久久中文字幕 | 88av色 | www.神马久久 | 国产精品小视频网站 | 好看的国产精品视频 | 天堂在线一区二区 | 亚洲人人精品 | 国产一区二区在线视频观看 | 黄网站色视频 | 狠狠色婷婷丁香六月 | 免费看黄网站在线 | 欧美日韩在线观看不卡 | 国产精品区在线观看 | 日本中文字幕网址 | 亚洲欧美日韩国产精品一区午夜 | 欧美天天综合 | 香蕉视频国产在线观看 | 日韩一区二区久久 | 青青射 | 国产精品一区二区免费在线观看 | 国产精品日韩 | 国产精品伦一区二区三区视频 | 欧美一区日韩一区 | 亚洲一级免费电影 | 欧美日韩xxxxx | 亚洲精品一区二区18漫画 | www.天天干.com| 欧美日韩一区三区 | 色婷婷婷 | 日韩高清激情 | 日日爱影视 | av 一区二区三区四区 | 成年人在线播放视频 | 久久大视频 | 国产精品一二 | 亚洲区另类春色综合小说 | 亚洲精品66 | 最近中文字幕国语免费av | 在线观看成人av | 中文字幕免费高清av | 成人丁香花 | 国产精品一区二区中文字幕 | 97超碰.com| 久久综合网色—综合色88 | 西西4444www大胆无视频 | 日韩免费av网址 | 最近日本mv字幕免费观看 | 伊人va| 91精品在线免费视频 | 国产色婷婷精品综合在线手机播放 | 九月婷婷人人澡人人添人人爽 | 日韩在线视频线视频免费网站 | 在线婷婷 | 国产在线欧美在线 | 成人午夜电影在线观看 | 天天碰天天操视频 | 激情五月婷婷激情 | 国产午夜精品一区二区三区嫩草 | 久久经典国产 | 天天插天天操天天干 | 五月激情av | 亚洲免费色 | 久久精品一二三 | 亚洲国产美女久久久久 | 国产精品欧美激情在线观看 | 日韩欧美在线影院 | 免费看黄色毛片 | 黄色一级动作片 | 丁香六月五月婷婷 | 97在线免费视频 | 亚洲精品91天天久久人人 | 成 人 黄 色 片 在线播放 | 日本少妇高清做爰视频 | 五月天视频网 | 亚洲欧美日韩精品久久久 | 欧美激情综合五月色丁香 | 精品福利视频在线 | www.天天综合 | 成人网在线免费视频 | 亚洲精色 | 国产精品免费麻豆入口 | 午夜天使| 婷婷成人综合 | 国产视频一区二区在线 | 日韩最新中文字幕 | 婷婷5月激情5月 | 久久99久久99精品免视看婷婷 | 97精品国产一二三产区 | 国产精品亚洲片在线播放 | 成人免费网视频 | 在线免费视频一区 | 伊人国产在线播放 | 五月婷社区 | 亚洲精品91天天久久人人 | 国产精品一区二区在线观看 | 久久老司机精品视频 | 日韩欧美一区二区在线播放 | 5月丁香婷婷综合 | 91超国产 | 欧美午夜视频在线 | 国产激情电影综合在线看 | 国产精品尤物 | 亚洲三级在线播放 | 天天干天天射天天插 | 国产美女视频网站 | 成人性生交大片免费看中文网站 | 99久久99视频 | 天天干天天干天天干 | 国产精品久久久久久久久久久久午夜片 | 国产伦精品一区二区三区照片91 | 日韩精品在线看 | 狠狠插天天干 | 日韩videos高潮hd | 六月丁香久久 | 婷婷在线免费观看 | 激情喷水 | 久久久国际精品 | 蜜桃视频在线观看一区 | 美女免费网站 | 亚洲 欧美日韩 国产 中文 | 伊人天天干 | 天天色欧美 | 久久久久久久看片 | 免费热情视频 | 日日夜夜91 | 一区二区视频在线看 | 欧美日韩精品在线观看 | 亚洲欧美综合 | 欧美狠狠操 | 首页av在线 | 亚洲成av人片在线观看香蕉 | 国产精品永久免费在线 | 国产亚洲久一区二区 | 人人爽人人| 久久官网| 91视视频在线直接观看在线看网页在线看 | 亚洲精品成人av在线 | 国产精品片 | av在线超碰 | 亚洲成人精品av | 九九精品无码 | 久久视频一区 | 麻豆视频免费版 | 在线网址你懂得 | 国产精品一区二区久久精品 | 激情综合网五月 | av电影在线不卡 | 99精品在线观看 | 中文电影网 | www.夜夜草| 69久久久 | 西西人体www444 | 欧美日韩一区二区在线观看 | 国产91综合一区在线观看 | www.一区二区三区 | 久久久久女人精品毛片九一 | 国产精品久久久久久爽爽爽 | 九九视频网 | 日本最新高清不卡中文字幕 | 亚洲清纯国产 | 日韩精品视频免费看 | 国产不卡在线观看视频 | 日韩a在线 | 中文字幕久久精品 | 天天干天天操天天干 | 欧美一区二区三区在线 | 网站在线观看日韩 | 欧美另类激情 | 91亚洲精品乱码久久久久久蜜桃 | 97国产大学生情侣白嫩酒店 | 中文字幕在线观看完整版电影 | 热久久最新地址 | 日韩国产精品一区 | 国产精品久久久久久久久久久久午夜 | 亚洲成人黄色在线 | 精品亚洲网 | 91免费在线 | 天天做日日做天天爽视频免费 | 日韩午夜在线观看 | 亚洲国产日韩在线 | 日本高清中文字幕有码在线 | 亚州精品国产 | 毛片网在线播放 | 韩国av一区二区三区在线观看 | 99久高清在线观看视频99精品热在线观看视频 | 国产成人免费网站 | 91重口视频 | 国产成人一区在线 | 五月激情视频 | 国产免费成人av | 国产亚洲综合精品 | 国产中文字幕网 | 99视频在线观看视频 | 天天操天天射天天 | 日色在线视频 | 99热精品国产一区二区在线观看 | 成人黄色片免费 | 美女av免费| 国产91全国探花系列在线播放 | 一区二区丝袜 | 91av大全 | 国产精品日韩在线观看 | 免费在线观看中文字幕 | 人人玩人人爽 | 久久久久北条麻妃免费看 | 久草免费电影 | 精品一区二区免费在线观看 | 午夜av影院| 五月天激情综合 | 成年人在线观看视频免费 | 欧美一级专区免费大片 | 国产精品久久久久久久久久久久午 | 国产精品久久久视频 | 亚洲精品国产精品国自 | 毛片网站免费在线观看 | 日韩午夜剧场 | 日韩精品一区二区在线视频 | 蜜桃视频在线视频 | 日韩精品视 | 另类五月激情 | 欧美福利视频一区 | 69性欧美| 91在线视频在线观看 | 最新国产精品拍自在线播放 | 四虎影视8848aamm | 五月天久久综合网 | 婷婷六月中文字幕 | 亚洲综合情 | 久久久久久久影视 | 国产亚洲一区二区在线观看 | 五月婷婷六月丁香在线观看 | 男女激情片在线观看 | 久久免费公开视频 | 日日夜夜天天人人 | 国产伦精品一区二区三区在线 | 国产99久久精品一区二区永久免费 | 国产一区二区三区高清播放 | 免费亚洲精品视频 | 精品欧美在线视频 | 欧美精品v国产精品v日韩精品 | 久久精品视频网 | 色在线网站 | 99精品视频在线观看播放 | а天堂中文最新一区二区三区 | 97色婷婷 | 国内精品在线看 | 成人h视频在线 | 91欧美国产| 999抗病毒口服液 | 操操操日日 | 欧美精品生活片 | 日韩在线视频在线观看 | 精品日韩在线一区 | 国产麻豆成人传媒免费观看 | 一区二区不卡 | www.久久91 | 欧美动漫一区二区三区 | 黄在线免费观看 | 亚洲精品黄 | 色999视频 | 亚洲美女久久 | 在线免费黄色片 | 国产精品99久久久久人中文网介绍 | 99色在线播放 | 日韩精品中文字幕久久臀 | 久久久精品日本 | 精品1区2区| 亚洲激情在线观看 | av高清网站在线观看 | 黄色大片网 | 日本三级不卡 | 激情五月在线 | 欧美性生活一级片 | 一区二区三区日韩在线观看 | 黄色中文字幕在线 | www日韩| h视频在线看 | 麻豆果冻剧传媒在线播放 | 国产精品第二十页 | 亚洲经典视频在线观看 | 久久成人国产精品一区二区 | 99操视频| 久草视频手机在线 | 久久久午夜视频 | 婷婷av网站 | 六月丁香激情综合色啪小说 | 国产精品午夜8888 | 午夜性生活 | 国产一级二级视频 | 999亚洲国产996395| 日韩毛片一区 | 免费精品视频 | 中文字幕免费高清 | 91成人免费观看视频 | 亚洲精品日韩在线观看 | 69国产成人综合久久精品欧美 | 九九有精品| 久久亚洲婷婷 | 精品视频在线观看 | 麻豆 videos| 成人免费视频免费观看 | 久久a v视频 | 国产经典av| 国产黄色高清 | 久久精品直播 | 天天爱天天操天天干 | 久久精品999 | 在线视频 一区二区 | 免费观看久久久 | 日韩91av | 国产成人精品一区二区三区在线 | 欧美日韩国产欧美 | 久久tv | 国产精品成人自产拍在线观看 | 91视频 - 114av| 国产精品麻豆视频 | 欧美色888 | 日韩 国产 | 久久综合狠狠综合 | 看黄色.com | 免费日韩 精品中文字幕视频在线 | 国产精品嫩草影院9 | 日韩精品中文字幕在线观看 | 国产流白浆高潮在线观看 | 亚洲成人二区 | 在线播放亚洲激情 | 99亚洲精品 | 国产精品电影一区二区 | 成人免费视频播放 | 人人干天天射 | 国产亚洲精品精品精品 | 黄色动态图xx | 激情久久久久久久久久久久久久久久 | 亚洲人成网站精品片在线观看 | 网址你懂的在线观看 | 久久艹在线观看 | 婷婷深爱 | 女人高潮特级毛片 | 久久婷婷一区二区三区 | 亚洲四虎 | 久久国产精品色婷婷 | 国产精品久久久久久久久岛 | 在线视频精品播放 | 婷婷丁香激情网 | 精品免费国产一区二区三区四区 | 成人h视频在线播放 | 99日精品| 曰本三级在线 | 日韩视频免费观看高清完整版在线 | 美女视频黄,久久 | 日韩大片在线播放 | 精品久久久久久久久久久久久久久久久久 | www91在线| www日| 成片免费观看视频大全 | 久久精品久久久精品美女 | 免费在线观看日韩视频 | 国产剧情一区二区 | 日韩videos高潮hd | 日本高清中文字幕有码在线 | 日韩中文在线字幕 | www.天天色| 久久国产精品色av免费看 | 免费国产在线视频 | av中文在线观看 | 天天插天天干 | 丝袜美女在线观看 | 中文在线字幕免费观看 | 人人艹人人 | 91热视频| 亚洲影院国产 | 国产男女无遮挡猛进猛出在线观看 | 中文字幕乱码一区二区 | 欧美性生活免费 | 日韩精品免费在线播放 | 欧美一级免费片 | 久久久久99999 | 国产黄色看片 | 亚洲第一av在线 | 国产精品一区二区在线看 | 亚洲精品综合一区二区 | 91精品人成在线观看 | 在线观看激情av | 日日草av | 国产剧情在线一区 | 免费午夜视频在线观看 | 久久婷婷色 | www.福利视频 | 婷婷激情五月 | 天天曰天天 | 色偷偷人人澡久久超碰69 | 久久久久免费 | 国产剧情av在线播放 | 婷婷中文字幕在线观看 | 国产精品久久久久av | 园产精品久久久久久久7电影 | 国产99久久精品一区二区永久免费 | 国产黄免费看 | 精品亚洲视频在线 | 97色资源| 天天干,天天干 | 亚州免费视频 | 狠狠久久伊人 | 亚洲人人爱 | 久久er99热精品一区二区三区 | 欧美大片在线观看一区 | 91av在| 成人 亚洲 欧美 | 一本之道乱码区 | 999成人| 狠狠久久婷婷 | 国产精品日韩在线 | 日韩理论在线观看 | 久久国产热视频 | 日韩三级在线 | 国产成人免费精品 | 国产免费人成xvideos视频 | 亚洲乱码久久久 | 国产精品乱码久久久久久1区2区 | 国产免费又黄又爽 | 国产亚洲精品女人久久久久久 | 免费看的黄色片 | 日韩免费高清 | 久久99精品热在线观看 | 黄色成人av | 欧美另类交人妖 | 国产大片免费久久 | 一级片免费观看视频 | 日日日网 | av日韩国产 | 菠萝菠萝蜜在线播放 | 成人av一区二区兰花在线播放 | 天天激情综合 | 99精品视频免费全部在线 | 国产又粗又猛又色又黄视频 | 久久国内精品视频 | 99久久99视频只有精品 | 国产精品一区二区av影院萌芽 | 狠狠色丁香久久婷婷综合五月 | 毛片1000部免费看 | 国产精品第二页 | 国产在线成人 | 99国产精品久久久久老师 | 日韩免费一区 | 三上悠亚一区二区在线观看 | 天天艹天天干天天 | 午夜国产一区二区三区四区 | 久久久久免费观看 | 日韩中文字幕在线 | 色网av | 亚洲国产经典视频 | 亚洲精品欧美成人 | 丁香六月在线 | 在线国产中文字幕 | 国产在线观看免费 | 免费在线观看成年人视频 | 国产精品欧美久久久久无广告 | 色资源中文字幕 | 久久久国产精品一区二区中文 | 久久激五月天综合精品 | 欧美黑吊大战白妞欧美 | 国产一级在线视频 | 91资源在线播放 | 国产免费av一区二区三区 | 在线中文字幕一区二区 | www.五月婷| 麻豆传媒在线免费看 | 日韩av在线不卡 | 91中文字幕永久在线 | 久草在线在线精品观看 | 日本在线视频网址 | 久久激情婷婷 | 日本在线视频网址 | 嫩小bbbb摸bbb摸bbb | 久久综合色一综合色88 | 国产午夜精品免费一区二区三区视频 | 国产第一页精品 | 国产日韩三级 | 9热精品| 狠狠色噜噜狠狠狠狠 | 久久久96 | 中文字幕乱码在线播放 | av久久在线 | 男女视频久久久 | 在线v片免费观看视频 | 婷婷综合影院 | www成人精品 | 最近免费中文字幕mv在线视频3 | 一本到在线| www色| 成人黄色视 | 国产乱对白刺激视频在线观看女王 | 在线观看黄色的网站 | 成人国产精品久久久春色 | 成人国产精品入口 | 日韩成人欧美 | 国产精品久久久久久欧美 | 手机av电影在线观看 | 91九色在线 | 成人国产精品电影 | 欧美精品三级在线观看 | 久久99精品视频 | 精品自拍av | 成人av影视观看 | 一区二区三区韩国免费中文网站 | 国产人成一区二区三区影院 | 国产免费观看av | 日韩欧美一区二区三区免费观看 | 日韩专区中文字幕 | 亚洲黄色在线观看 | 91免费看片黄 | 亚洲精品视频在线观看免费视频 | 美女国产网站 | 日日狠狠| 91在线国产观看 | 国产午夜精品一区二区三区在线观看 | 久久国内免费视频 | 国产精品视频免费在线观看 | 日韩精品专区 | 国产成人精品国内自产拍免费看 | 国产男女免费完整视频 | 丝袜制服综合网 | 久久九九影院 | 在线观看中文字幕 | 久久婷婷精品视频 | 探花视频在线观看免费 | 91在线免费播放视频 | 天天操综 | 91污在线 | 国产精品久久99综合免费观看尤物 | 久草9视频 | 狠狠久久伊人 | 久久夜色电影 | 国产免费午夜 | 中文在线免费一区三区 | 欧美少妇18p | 国产正在播放 | 国产精品成人自产拍在线观看 | 午夜av免费看 | 97超碰福利久久精品 | 在线黄色免费 | 伊人影院99 | 日日夜夜天天射 | 8x成人免费视频 | 日本夜夜草视频网站 | 亚洲区视频在线 | 丰满少妇高潮在线观看 | 日韩系列 | 丁香婷婷综合激情五月色 | 国产综合片 | 日韩视频一区二区三区在线播放免费观看 | 国产精品96久久久久久吹潮 | 日韩丝袜在线 | 91精品一区国产高清在线gif | 高清av中文在线字幕观看1 | 欧美色图p | 99色资源 | 在线观看中文字幕 | 500部大龄熟乱视频 欧美日本三级 | 91看片一区二区三区 | 狠狠躁18三区二区一区ai明星 | 国内视频1区 | 99精品在线 | 中文字幕刺激在线 | 狠狠躁日日躁狂躁夜夜躁 | 国产一级片久久 | 黄色日本片 | 中文字幕在线专区 | 免费性网站 | 天天干com | 国产伦精品一区二区三区照片91 | 国产精品99久久久久久久久 | 黄色h在线观看 | 久久你懂得 |