Why 'files.py' does not print the filenames into a table format?

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


On 15/6/2013 11:37 μμ, Joshua Landau wrote:
> On 15 June 2013 20:51, Nick the Gr33k <support at superhost.gr> wrote:
>> On 15/6/2013 10:46 μμ, Jarrod Henry wrote:
>>>
>>> Nick, at this point, you need to hire someone to do your work for you.
>>
>>
>> The code is completely ready.
>> Some detail is missing and its not printing the files as expected.
>
> Look, Nick,
>
> A lot of people are frustrated by you. You should understand that. If
> you cannot, you need to step back and consider, or you really are a
> troll.
>
> Now, obviously it's not going to get you any help to have half of the
> forum angry at you. People have stopped helping, at least in large.
> This is fine; people here are volunteers. But you want help.
>
> So, Nick, listen. You need to learn how to ask *smart* questions. If
> you do, I *guarantee* that people will respect you a lot more. I'll be
> willing to give a bit of time to explain what I mean.
>
> 1) What is your problem. Not "I want to know why it doesn't print
> anything." Here's an example, for some random idea:
>
>> I've written some code to find the first file in a directory which
>> is not UTF-8. Lines 40-42 are meant to print out the file found
>> to a log ("/home/joshua/.logs/log"). Unfortunately, although
>> there is no error, no file is printed to the log.
>
> 2) What have you tried? What debugging have you done? For someone of
> your skill level, it's also important to tell us what you think your
> code is doing. Example:
>
>> I've tried checking for a failure - when there is no non-UTF-8 file
>> in the directory the appropriate error is raised. I think this should
>> mean that the "else" after the "for" loop would be run, and this
>> should run the lines 40-42 above when there *is* a non-UTF-8
>> file.
>
> 3) If possible, give us an example we can run.
>
>> To make helping easier, I've removed the code that searches the
>> directory as I know that works, and instead there's a list of BytesIO
>> and StringIO objects that pretend to be them. The bug is still
>> there.
>
> Do you see the difference?
>
>> Irrelevant to my question i just noticed weird behavior about my
>> pelatologio.py script which can be seen here:
>>
>> http://superhost.gr/?show=stats
>>
>> The first 3 files are of my doing.
>> All the rest are of someone else's that managed to append entries into my
>> counters database utilizing this code:
>>
>> ================
>>
>>          try:
>>                  #find the needed counter for the page URL
>>                  cur.execute('''SELECT ID FROM counters WHERE url = %s''',
>> page )
>>                  data = cur.fetchone()        #URL is unique, so should only
>> be one
>>
>>                  if not data:
>>                          #first time for page; primary key is automatic, hit
>> is defaulted
>>                          cur.execute('''INSERT INTO counters (url) VALUES
>> (%s)''', page )
>>                          cID = cur.lastrowid        #get the primary key
>> value of the new record
>> ======================
>>
>> Does someone want to state something?
>
> Sure. Here I go:
>
> What's the question?


I DID, I FINALLY DID IT JUST NOW!!

HERE ARE THE MODIFICATIONS THAT MADE IT HAPPEN!


==========================================================================================================
# 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') )
================================

i SMASHED MY HEAD INTO THE WALL, BUT I MADE IT!!!!
FINALLY AFTER > 15 DAYS!!

FEEL FREE TO CONGRATULATE ME!



-- 
What is now proved was at first only imagined!



More information about the Python-list mailing list