Updating a filename's counter value failed each time

Νίκος support at superhost.gr
Mon Jun 17 20:22:58 EDT 2013


Finally i made it!! Here it is:

# 
=================================================================================================================
# Have 1:1 mapping of files <-> database records, delete spurious
# 
=================================================================================================================
filenames = []

# Turn files from bytestrings => strings and trim them from their paths
for utf8_filename in utf8_filenames:
	filenames.append( utf8_filename.decode('utf-8').replace( 
'/home/nikos/public_html/data/apps/', '' ) )

# Create a database entry for each file
for filename in filenames:
	try:
		# Try to insert the file into the database
		cur.execute('''INSERT INTO files (url, host, lastvisit) VALUES (%s, 
%s, %s)''', (filename, host, lastvisit) )
	except pymysql.IntegrityError as e:
		# Insertion failed, so, file already exist into database, skip this, 
go to next
		pass

# Delete those database records that do not correspond to files
cur.execute('''SELECT url FROM files''')
data = cur.fetchall()

for rec in data:
	if rec[0] not in filenames:
		cur.execute('''DELETE FROM files WHERE url = %s''', rec[0] )



More information about the Python-list mailing list