473,597 Members | 2,146 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Q: urlopen() and "file:///c:/mypage.html" ??

MAK
I'm stumped.

I'm trying to use Python 2.3's urllib2.urlopen () to open an HTML file
on the local harddrive of my WinXP box.

If I were to use, say, Netscape to open this file, I'd specify it as
"file:///c:/mypage.html", and it would open it just fine. But
urlopen() won't accept it as a valid URL. I get an OSError exception
with the error message "No such file or directory:
'\\C:\\mypage.h tml'".

I've tried variations on the URL, such as "file://c:/mypage.html",
too, without luck. That one gives me a 'socket.gaierro r' exception
with the message "'getaddrin fo failed'".

Upon diving into the code, I found that, in the first case, the third
'/' is left as part of the filename, and in the second case, it ends
up thinking that 'C:' is the hostname of the machine.

Can anyone point out the error of my ways?
Thanks.
Jul 18 '05 #1
5 15860
MAK wrote:
I'm stumped.

I'm trying to use Python 2.3's urllib2.urlopen () to open an HTML file
on the local harddrive of my WinXP box.

If I were to use, say, Netscape to open this file, I'd specify it as
"file:///c:/mypage.html", and it would open it just fine. But
urlopen() won't accept it as a valid URL. I get an OSError exception
with the error message "No such file or directory:
'\\C:\\mypage.h tml'".

I've tried variations on the URL, such as "file://c:/mypage.html",
too, without luck. That one gives me a 'socket.gaierro r' exception
with the message "'getaddrin fo failed'".

Upon diving into the code, I found that, in the first case, the third
'/' is left as part of the filename, and in the second case, it ends
up thinking that 'C:' is the hostname of the machine.

Can anyone point out the error of my ways?
Thanks.


This works:

f = urllib2.urlopen (r'file:///c|\mypage.html' )

But, if you're only opening local files, what's wrong with:

f = file(r'c:/mypage.html', 'r')

jf

Jul 18 '05 #2
> MAK wrote:
I'm trying to use Python 2.3's urllib2.urlopen () to open an HTML
file on the local harddrive of my WinXP box.

If I were to use, say, Netscape to open this file, I'd specify it as
"file:///c:/mypage.html", and it would open it just fine. But
urlopen() won't accept it as a valid URL. I get an OSError
exception with the error message "No such file or directory:
'\\C:\\mypage.h tml'".

Joe Francia wrote: This works:

f = urllib2.urlopen (r'file:///c|\mypage.html' )

But, if you're only opening local files, what's wrong with:

f = file(r'c:/mypage.html', 'r')


Just to add to that, the significant thing in the working example isn't that
it uses backslash instead of forward slash, but that it uses vertical bar
instead of colon. This works just as well:

f = urllib2.urlopen ( 'file:///c|/mypage.html' )

-Mike
Jul 18 '05 #3
MAK
Wow, thanks guys. A vertical bar instead of a colon... I'da never
figured on that...
Jul 18 '05 #4
"Michael Geary" <Mi**@DeleteThi s.Geary.com> writes:
MAK wrote: [...]
If I were to use, say, Netscape to open this file, I'd specify it as
"file:///c:/mypage.html", and it would open it just fine. But
urlopen() won't accept it as a valid URL. I get an OSError
exception with the error message "No such file or directory:
'\\C:\\mypage.h tml'".
[...] f = urllib2.urlopen ( 'file:///c|/mypage.html' )


Why does Python use a different syntax to the rest of the Windows
world?
John
Jul 18 '05 #5
"John J. Lee" <jj*@pobox.co m> wrote in message
news:87******** ****@pobox.com. ..
"Michael Geary" <Mi**@DeleteThi s.Geary.com> writes:
MAK wrote: [...] > If I were to use, say, Netscape to open this file, I'd specify it as
> "file:///c:/mypage.html", and it would open it just fine. But
> urlopen() won't accept it as a valid URL. I get an OSError
> exception with the error message "No such file or directory:
> '\\C:\\mypage.h tml'".

[...]
f = urllib2.urlopen ( 'file:///c|/mypage.html' )


Why does Python use a different syntax to the rest of the Windows
world?


On Windows, if I open a local file in Netscape 4, the Location bar shows a
"file" URL with the "|". If I open a local file in Internet Explorer (or the
file Explorer with the Address bar turned on), the Address bar shows a
"file" URL with a ":". The resolver used by both Netscape and Explorer will
accept either one, if you type it in the address bar. So who is to say what
is canon? The 'file' URI scheme is, by definition, OS dependent. If the OS
likes the URL, then it's good enough.

For 4Suite running on Windows, we were thinking of making a Python wrapper
to the Windows resolver for maximum compatibility, but haven't gotten around
to it. For now, we avoid the bug-ridden urllib as much as we can, and do
some voodoo on 'file' URLs to convert them to OS-specific paths that are
safe to pass to open() on the (win32 or posix) OS we're running on. It's not
foolproof yet, and won't handle the colon case, but does a round-trip from
an OS path to a URI and back pretty well. See the UriToOsPath() and
OsPathToUri() work in the Ft.Lib.Uri module here:
http://cvs.4suite.org/cgi-bin/viewcv...viewcvs-markup
Jul 18 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
1891
by: Uwe Mayer | last post by:
Hi, when extending a build in class, what does the constructor __init__(...) have to return? and how does the constructor call its base-class construtor? (or is this done automatically?) I want to derive from "file" to create a class that reads record from a binary file:
10
3710
by: mike | last post by:
regards: I use Jtidy (api) to translate a HTML file into a "XHTML file". But The "XHTML file" cannot be identified by nokia 6600. Do I miss something important? Or this is Jtidy's weakness or bug? Can someone excellent to tell me the reason. best wishes
7
5064
by: Sherry Littletree | last post by:
Hi All I am working on a site that has a large amount of common html on all its web pages. I am looking for a way to place this in a single file so, if changes are made, I can change this single file and do not have to change each and every page. I have the Java scripting in a common .Js file but have not been able to find a way to do this with my html content.
10
60697
by: Dieter Salath? | last post by:
Hi, in our webpage, a user could open a windows explorer to his temp directory with a simple link and usage of the file protocol: <a href="file://C:\temp" target="_blank">C:\temp</a> This worked very well a long time, but now it does not work anymore. We use IE6 and Microsoft Windows XP Professional 2002 SP2. I guess it has something to do with new IE security features. Does
1
3287
by: Mark Sandfox | last post by:
Is there a way to restrict the user to only selecting and sending either a ..gif or .jpg. Everything I have read says this option can not be done by design (security reasons). I find that irronic as this is the reason (security) that I want to restrict their selection. Any help on this one will be greatly appreciated. The page is using ASP.NET.
3
2539
by: B-Dog | last post by:
I'm checking some files to see if the filenames are in a certain format and if not I want to pull up a dialog box that gives me a save as with the file that is in question. I have all the files in a certain directory and if it doesn't meet my criteria then I want to do a "save as" to a different location. How can I do that. I can't seem to get the save as dialog to grab the filename of the file in question and ask for a place to save it....
2
2068
by: Me | last post by:
I am passing on the input name to my asp page using Response.redirect "mypage.asp?name=" & name and the resulting url looks like 'companyname/mypage.asp?name=" & name I would like it to appear like 'companyname' or at most 'companyname/mypage.asp' how can I do it?
9
24741
by: Prakash Singh Bhakuni | last post by:
am replacing the default "Browse..." button for input type=file. This works fine except that the form will only submit after the SUBMIT button is clicked twice. Any ideas on why this is happening or a workaround? I'm testing on IE Thanks! <html> <head></head> <body> <form name="test_form" method="post" action="test.jsp">
1
3295
by: sandeep kumar shah | last post by:
Hi, We have used a file uploading HTML tag in an HTML page. We need to customize the text displayed on the Button (which is by default “Browse…” for internet explorer). Below is the code we have used: CODE: <input type="file" style=" width:100%" id="importFile" name="importFile"/> As per our analysis we got two methods but none is satisfactory. Please let us know if there is any other way out
0
7969
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
1
8035
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8258
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
6688
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
5847
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
3886
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
2404
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1494
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
1238
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.