How to compute a hash of a sqlite database file without causing harm
<p>I have a function like the following that I want to use to compute the hash of a sqlite database file, in order to compare it to the last backup I made to detect any changes.</p>

<pre>
def get_hash(file_path):
    # http://stackoverflow.com/a/3431838/1391717
    hash_sha1 = hashlib.sha1
    with open(file_path, "rb") as f:
        for chunk in iter(lambda: f.read(4096), b""):
            hash_sha1.update(chunk)

    return hash_sha1.hexdigest()
</pre>

<p>I plan on locking the database, so no one can write to it while I'm computing the hash. Is it possible for me to cause any harm while doing this?</p>

<pre>
// http://codereview.stackexchange.com/questions/78643/create-sqlite-backups
connection = sqlite3.connect(database_file)
cursor = connection.cursor()
cursor.execute("begin immediate")

db_hash = get_hash(args.database)
</pre>