Downloading a file form a displayed table

  • Thread starter Íßêïò Ãêñ33ê
  • Start date
Í

Íßêïò Ãêñ33ê

# =================================================================================================================
# display download button for each file and downlaod it on click
# =================================================================================================================
if form.getvalue('show') == 'files':

print ( "<center><a href='http://superhost.gr/files.html'> <img src='/data/images/download.png'></a><br>" )
print ( "<table border=5 cellpadding=5 bgcolor=blue>" )

path = "/data/files/"

for filename in os.walk(path):
print '''
<form method="get" action="%s">
print( "<tr><td><center> <button type='submit'> %s </button> </td></tr>" ) % filename
</form>
'''

sys.exit(0)

========================

I use the above code to tidplay a filenames table so the user cna download a displayed button style lookign file but its not printing anything for me just an emptry table

'/data/files' has 5 files in it but its not showing any.
I dont see what iam doign wrong
 
D

Dave Angel

# =================================================================================================================
# display download button for each file and downlaod it on click
# =================================================================================================================
if form.getvalue('show') == 'files':

print ( "<center><a href='http://superhost.gr/files.html'> <img src='/data/images/download.png'></a><br>" )
print ( "<table border=5 cellpadding=5 bgcolor=blue>" )

path = "/data/files/"

for filename in os.walk(path):
print '''
<form method="get" action="%s">
print( "<tr><td><center> <button type='submit'> %s </button> </td></tr>" ) % filename
</form>
'''

sys.exit(0)

========================

I use the above code to tidplay a filenames table so the user cna download a displayed button style lookign file but its not printing anything for me just an emptry table

'/data/files' has 5 files in it but its not showing any.
I dont see what iam doign wrong

It would be useful to actually specifying the context of this fragment
of code. Presumably it's running on a web server somewhere, and you're
expecting the filenames to somehow show up on a browser. Which OS and
which version of Python for that server, and what brand and version of
browser?

Have you considered closing the table, and ending the body of the page?

Have you looked at the result with View->Source in your browser?
 
Í

Íßêïò Ãêñ33ê

Ôç Ôñßôç, 5 Ìáñôßïõ 2013 11:45:09 ð.ì. UTC+2, ï ÷ñÞóôçò Dave Angel Ýãñáøå:
It would be useful to actually specifying the context of this fragment

of code. Presumably it's running on a web server somewhere, and you're

expecting the filenames to somehow show up on a browser. Which OS and

which version of Python for that server, and what brand and version of

browser?



Have you considered closing the table, and ending the body of the page?

The server run Linux and python version is v2.7 and the browser is Chrome v27

The source appears empty.

Frankly i dont see anythign wrong with my code:

path = "/data/files/"

for filename in os.walk(path):
print '''
<form method="get" action="%s">
<tr><td><center> <button type="submit"> %s </button> </td></tr>
</form>
''' % (filename, filename)

sys.exit(0)
 
Í

Íßêïò Ãêñ33ê

Ôç Ôñßôç, 5 Ìáñôßïõ 2013 11:45:09 ð.ì. UTC+2, ï ÷ñÞóôçò Dave Angel Ýãñáøå:
It would be useful to actually specifying the context of this fragment

of code. Presumably it's running on a web server somewhere, and you're

expecting the filenames to somehow show up on a browser. Which OS and

which version of Python for that server, and what brand and version of

browser?



Have you considered closing the table, and ending the body of the page?

The server run Linux and python version is v2.7 and the browser is Chrome v27

The source appears empty.

Frankly i dont see anythign wrong with my code:

path = "/data/files/"

for filename in os.walk(path):
print '''
<form method="get" action="%s">
<tr><td><center> <button type="submit"> %s </button> </td></tr>
</form>
''' % (filename, filename)

sys.exit(0)
 
D

Dave Angel

for filename in os.walk(path):

But os.walk() doesn't return a filename. It returns a tuple. Have you
tested any of this code outside of a server?

Also, you're using tabs here. They don't show up in most email
programs, so you're better off replacing them with an appropriate number
of spaces. After all, indentation matters.
 
D

Dave Angel

Ôç Ôñßôç, 5 Ìáñôßïõ 2013 11:45:09 ð.ì. UTC+2, ï ÷ñÞóôçò Dave Angel Ýãñáøå:


The server run Linux and python version is v2.7 and the browser is Chrome v27

The source appears empty.

In that case, there's something wrong far outside of this code fragment.
A web page (html) has lots of required elements which were presumably
in other parts of the script that are not shown here.
 
Í

Íßêïò Ãêñ33ê

Ôç Ôñßôç, 5 Ìáñôßïõ 2013 11:51:41 ð.ì. UTC+2, ï ÷ñÞóôçò Dave Angel Ýãñáøå:
But os.walk() doesn't return a filename. It returns a tuple. Have you

tested any of this code outside of a server?



Also, you're using tabs here. They don't show up in most email

programs, so you're better off replacing them with an appropriate number

of spaces. After all, indentation matters.

How is this lien supposed to be written do to iterate over a list of filenames?

for filename in list( os.walk(path) ):

i tried the above but still it doesn't work out.
 
Í

Íßêïò Ãêñ33ê

Ôç Ôñßôç, 5 Ìáñôßïõ 2013 11:51:41 ð.ì. UTC+2, ï ÷ñÞóôçò Dave Angel Ýãñáøå:
But os.walk() doesn't return a filename. It returns a tuple. Have you

tested any of this code outside of a server?



Also, you're using tabs here. They don't show up in most email

programs, so you're better off replacing them with an appropriate number

of spaces. After all, indentation matters.

How is this lien supposed to be written do to iterate over a list of filenames?

for filename in list( os.walk(path) ):

i tried the above but still it doesn't work out.
 
L

Lele Gaifax

Îίκος ΓκÏ33κ said:
How is this lien supposed to be written do to iterate over a list of filenames?

for filename in list( os.walk(path) ):

i tried the above but still it doesn't work out.

Please learn how Python itself can help you:

$ python
Python 2.7.3 (default, Jan 2 2013, 13:56:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.Help on function walk in module os:

walk(top, topdown=True, onerror=None, followlinks=False)
Directory tree generator.
...
Example:

import os
from os.path import join, getsize
for root, dirs, files in os.walk('python/Lib/email'):
...

In general, the builtin help() function displays the documentation for
either a single function or a whole module.

ciao, lele.
 
Í

Íßêïò Ãêñ33ê

Please help me correct thois code, iam tryign ti for hours and i cant seem to get it working....it irritates me....

path = "/home/nikos/public_html/data/files/"
for filename in os.walk(path):
try:
#find the needed counter for the page URL
cur.execute('''SELECT ID FROM files WHERE URL = %s''', (filename,) )
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 files (URL, lastvisit) VALUES (%s, %s)''', (filename, date) )
cID = cur.lastrowid #get the primary key value of the new record
else:
#found the page, save primary key and use it to issue hit UPDATE
cID = data[0]
cur.execute('''UPDATE files SET hits = hits + 1, lastvisit = %s WHERE ID = %s''', (date, cID)
except MySQLdb.Error, e:
print ( "Query Error: ", sys.exc_info()[1].excepinfo()[2] )
 
J

Joel Goldstick

Please help me correct thois code, iam tryign ti for hours and i cant seem
to get it working....it irritates me....

There is no question here. No indication of what isn't working as you
like. No traceback.
path = "/home/nikos/public_html/data/files/"
for filename in os.walk(path):
try:
#find the needed counter for the page URL
cur.execute('''SELECT ID FROM files WHERE URL = %s''',
(filename,) )
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 files (URL, lastvisit)
VALUES (%s, %s)''', (filename, date) )
cID = cur.lastrowid #get the primary key
value of the new record
else:
#found the page, save primary key and use it to
issue hit UPDATE
cID = data[0]
cur.execute('''UPDATE files SET hits = hits + 1,
lastvisit = %s WHERE ID = %s''', (date, cID)
except MySQLdb.Error, e:
print ( "Query Error: ", sys.exc_info()[1].excepinfo()[2])
 
V

Vytas D.

Hi,

It is really complicated to reproduce the errors you get by running your
code since it involves database queries.

Though one thing that really needs your attention is how you handle the
results from os.walk(path).

Dave Angel told you already that: "But os.walk() doesn't return a filename.
It returns a tuple.".

To show where you are wrong I have create the directory structure:
Folder "folder1" that has files "file4.txt" and "file3.txt" inside.

In Python 2.6.5:.... print(filename)
....
('folder1', [], ['file4.txt', 'file3.txt'])
So your code is treating results from os.walk() incorrectly. You get tuple,
so extract data you need from it first. In case you don't know how:

Print files only (no directories. Adapt code to your needs):.... for filename in result[2]:
.... print(filename)
....
file4.txt
file3.txt

In http://docs.python.org/2/library/os.html you will find:
os.walk(top, topdown=True, onerror=None, followlinks=False)
Generate the file names in a directory tree by walking the tree either
top-down or bottom-up. For each directory in the tree rooted at directory
top (including top itself), it yields a 3-tuple (dirpath, dirnames,
filenames).
....

Vytas


Please help me correct thois code, iam tryign ti for hours and i cant seem
to get it working....it irritates me....

path = "/home/nikos/public_html/data/files/"
for filename in os.walk(path):
try:
#find the needed counter for the page URL
cur.execute('''SELECT ID FROM files WHERE URL = %s''',
(filename,) )
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 files (URL, lastvisit)
VALUES (%s, %s)''', (filename, date) )
cID = cur.lastrowid #get the primary key
value of the new record
else:
#found the page, save primary key and use it to
issue hit UPDATE
cID = data[0]
cur.execute('''UPDATE files SET hits = hits + 1,
lastvisit = %s WHERE ID = %s''', (date, cID)
except MySQLdb.Error, e:
print ( "Query Error: ", sys.exc_info()[1].excepinfo()[2])
 
M

Mark Lawrence

# =================================================================================================================
# display download button for each file and downlaod it on click
# =================================================================================================================
if form.getvalue('show') == 'files':

print ( "<center><a href='http://superhost.gr/files.html'> <img src='/data/images/download.png'></a><br>" )
print ( "<table border=5 cellpadding=5 bgcolor=blue>" )

path = "/data/files/"

for filename in os.walk(path):
print '''
<form method="get" action="%s">
print( "<tr><td><center> <button type='submit'> %s </button> </td></tr>" ) % filename
</form>
'''

sys.exit(0)

========================

I use the above code to tidplay a filenames table so the user cna download a displayed button style lookign file but its not printing anything for me just an emptry table

'/data/files' has 5 files in it but its not showing any.
I dont see what iam doign wrong

You're doing at least two things wrong.

1) Not reading documentation
2) Not trying the interactive prompt.
3) Not using the print statement/function.
4) Not taking any notice of what people tell you.
5) Not showing what you expect to happen and what actually happens.
6) You're not doing six wrong.
 
Í

Íßêïò Ãêñ33ê

Ôç Ôñßôç, 5 Ìáñôßïõ 2013 3:38:49 ì.ì. UTC+2, ï ÷ñÞóôçò Vytas D. Ýãñáøå:
Hi,

It is really complicated to reproduce the errors you get by running your code since it involves database queries.

Though one thing that really needs your attention is how you handle the results from os.walk(path).


Dave Angel told you already that: "But os.walk() doesn't return a filename. It returns a tuple.".



To show where you are wrong I have create the directory structure:

Folder "folder1" that has files "file4.txt" and "file3.txt" inside.




In Python 2.6.5:...  print(filename)
...
('folder1', [], ['file4.txt', 'file3.txt'])


So your code is treating results from os.walk() incorrectly. You get tuple, so extract data you need from it first. In case you don't know how:


Print files only (no directories. Adapt code to your needs):
...    for filename in result[2]:
...      print(filename)
...
file4.txt
file3.txt



In http://docs.python.org/2/library/os.html you will find:

os.walk(top, topdown=True, onerror=None, followlinks=False)
Generate the file names in a directory tree by walking the tree either top-down or bottom-up. For each directory in the tree rooted at directory top(including top itself), it yields a 3-tuple (dirpath, dirnames, filenames)..

...



Vytas





Please help me correct thois code, iam tryign ti for hours and i cant seem to get it working....it irritates me....




path = "/home/nikos/public_html/data/files/"

for filename in os.walk(path):

        try:

                #find the needed counter for the page URL

                cur.execute('''SELECT ID FROM files WHEREURL = %s''', (filename,) )

                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 files (URL, lastvisit) VALUES (%s, %s)''', (filename, date) )

                        cID = cur.lastrowid       #get the primary key value of the new record

                else:

                        #found the page, save primary key and use it to issue hit UPDATE

                        cID = data[0]

                        cur.execute('''UPDATE files SET hits = hits + 1, lastvisit = %s WHERE ID = %s''', (date, cID)

        except MySQLdb.Error, e:

                print ( "Query Error: ", sys.exc_info()[1].excepinfo()[2] )

Yes indeed! the problem was at the way os.walk resulted the data.

one would think that os.walk would return the actual filenames ina tuple but it also returned coupel things more before the file themselevrs.

thank you a lot for poitning this out to me.
 
Í

Íßêïò Ãêñ33ê

Ôç Ôñßôç, 5 Ìáñôßïõ 2013 3:38:49 ì.ì. UTC+2, ï ÷ñÞóôçò Vytas D. Ýãñáøå:
Hi,

It is really complicated to reproduce the errors you get by running your code since it involves database queries.

Though one thing that really needs your attention is how you handle the results from os.walk(path).


Dave Angel told you already that: "But os.walk() doesn't return a filename. It returns a tuple.".



To show where you are wrong I have create the directory structure:

Folder "folder1" that has files "file4.txt" and "file3.txt" inside.




In Python 2.6.5:...  print(filename)
...
('folder1', [], ['file4.txt', 'file3.txt'])


So your code is treating results from os.walk() incorrectly. You get tuple, so extract data you need from it first. In case you don't know how:


Print files only (no directories. Adapt code to your needs):
...    for filename in result[2]:
...      print(filename)
...
file4.txt
file3.txt



In http://docs.python.org/2/library/os.html you will find:

os.walk(top, topdown=True, onerror=None, followlinks=False)
Generate the file names in a directory tree by walking the tree either top-down or bottom-up. For each directory in the tree rooted at directory top(including top itself), it yields a 3-tuple (dirpath, dirnames, filenames)..

...



Vytas





Please help me correct thois code, iam tryign ti for hours and i cant seem to get it working....it irritates me....




path = "/home/nikos/public_html/data/files/"

for filename in os.walk(path):

        try:

                #find the needed counter for the page URL

                cur.execute('''SELECT ID FROM files WHEREURL = %s''', (filename,) )

                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 files (URL, lastvisit) VALUES (%s, %s)''', (filename, date) )

                        cID = cur.lastrowid       #get the primary key value of the new record

                else:

                        #found the page, save primary key and use it to issue hit UPDATE

                        cID = data[0]

                        cur.execute('''UPDATE files SET hits = hits + 1, lastvisit = %s WHERE ID = %s''', (date, cID)

        except MySQLdb.Error, e:

                print ( "Query Error: ", sys.exc_info()[1].excepinfo()[2] )

Yes indeed! the problem was at the way os.walk resulted the data.

one would think that os.walk would return the actual filenames ina tuple but it also returned coupel things more before the file themselevrs.

thank you a lot for poitning this out to me.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,534
Members
45,007
Latest member
obedient dusk

Latest Threads

Top