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