Path: csiph.com!usenet.pasdenom.info!gegeweb.org!de-l.enfer-du-nord.net!feeder1.enfer-du-nord.net!news.grnet.gr!news.ntua.gr!not-for-mail From: =?UTF-8?B?zp3Ouc66z4zOu86xzr/PgiDOms6/z43Pgc6xz4I=?= Newsgroups: comp.lang.python Subject: Re: Turnign greek-iso filenames => utf-8 iso Date: Wed, 12 Jun 2013 20:27:24 +0300 Organization: National Technical University of Athens, Greece Lines: 105 Message-ID: <51B8AF7C.4080904@superhost.gr> References: <51b831f2$0$29998$c3e8da3$5496439d@news.astraweb.com> <51b83cab$0$29998$c3e8da3$5496439d@news.astraweb.com> <51b84151$0$29872$c3e8da3$5496439d@news.astraweb.com> NNTP-Posting-Host: 79.103.41.173.dsl.dyn.forthnet.gr Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: news.ntua.gr 1371058046 72880 79.103.41.173 (12 Jun 2013 17:27:26 GMT) X-Complaints-To: usenet@news.ntua.gr NNTP-Posting-Date: Wed, 12 Jun 2013 17:27:26 +0000 (UTC) To: Cameron Simpson , Michael Torrie User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko/20100101 Thunderbird/22.0 In-Reply-To: Xref: csiph.com comp.lang.python:47824 On 12/6/2013 3:42 μμ, Νικόλαος Κούρας wrote: >> ================================================================================================================= >> # Convert wrongly encoded filenames to utf-8 >> # >> ================================================================================================================= >> >> >> path = b'/home/nikos/public_html/data/apps/' >> filenames = os.listdir( path ) >> >> utf8_filenames = [] >> >> for filename in filenames: >> # Compute 'path/to/filename' >> filename_bytes = path + filename >> encoding = guess_encoding( filename_bytes ) >> >> if encoding == 'utf-8': >> # File name is valid UTF-8, so we can skip to the next file. >> utf8_filenames.append( filename_bytes ) >> continue >> elif encoding is None: >> # No idea what the encoding is. Hit it with a hammer until it >> stops moving. >> filename = filename_bytes.decode( 'utf-8', 'xmlcharrefreplace' ) >> else: >> filename = filename_bytes.decode( encoding ) >> >> # Rename the file to something which ought to be UTF-8 clean. >> newname_bytes = filename.encode('utf-8') >> os.rename( filename_bytes, newname_bytes ) >> utf8_filenames.append( newname_bytes ) >> >> # Once we get here, the file ought to be UTF-8 clean and the >> Unicode name ought to exist: >> assert os.path.exists( newname_bytes.decode('utf-8') ) >> >> >> # Switch filenames from utf8 bytestrings => unicode strings >> filenames = [] >> >> for utf8_filename in utf8_filenames: >> filenames.append( utf8_filename.decode('utf-8') ) >> >> # Check the presence of a database file against the dir files and delete >> record if it doesn't exist >> cur.execute('''SELECT url FROM files''') >> data = cur.fetchall() >> >> for url in data: >> if url not in filenames: >> # Delete spurious >> cur.execute('''DELETE FROM files WHERE url = %s''', url ) >> >> >> # >> ================================================================================================================= >> >> >> # Display ALL files, each with its own download button >> # >> ================================================================================================================= >> >> >> print(''' >>


>> >> ''') >> >> try: >> cur.execute( '''SELECT * FROM files ORDER BY lastvisit DESC''' ) >> data = cur.fetchall() >> >> for row in data: >> (filename, hits, host, lastvisit) = row >> lastvisit = lastvisit.strftime('%A %e %b, %H:%M') >> >> print(''' >> >> >> >> >> >> >> >> >> ''' % (filename, hits, host, lastvisit) ) >> print( '''
> value="%s">
%s
%s
%s


''' ) >> except pymysql.ProgrammingError as e: >> print( repr(e) ) >> >> sys.exit(0) >> >> ========== Please help, the script does not erring out, bu neither print the files along with download button for the users to download. What else do i need to try to find out, where the logical error(it it is one) might be? After correcting this issue, this gonna be my last question, every other script is fixed, its just this issues now almost 15 days.