473,249 Members | 1,222 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,249 software developers and data experts.

how to find the drive in python/cygwin?

Hello:

I'm running python under cygwin and need to find the drive letter.
Cygwin has a way of calling my drives by a name relative to the Cygwin
directory, so I get things like /home/user rather than
/cygdrive/g/cygwin/home/usr, etc. How can I find the letter of the
drive, or in the above example, the letter 'g'?

My program needs to run on an external media that comes with Cygwin on
it. I have no control over what drive is assigned to that media, but
for some reason, I do need to know the letter.

Please help!

Thanks,

Mayer

Jul 19 '05 #1
9 3519
On 26 Apr 2005 11:29:26 -0700, Mayer <gm****@cs.bgu.ac.il> wrote:
Hello:

I'm running python under cygwin and need to find the drive letter.
Cygwin has a way of calling my drives by a name relative to the Cygwin
directory, so I get things like /home/user rather than
/cygdrive/g/cygwin/home/usr, etc. How can I find the letter of the
drive, or in the above example, the letter 'g'?
Generally, drive N gets mapped to /cygdrive/n/ but you could call the
'mount' command and parse the output to see what drive letter got
assigned to a given path. On my system, mount returns:

$ mount
C:\cygwin\usr\X11R6\lib\X11\fonts on /usr/X11R6/lib/X11/fonts type
system (binmode)
C:\cygwin\bin on /usr/bin type system (binmode)
C:\cygwin\lib on /usr/lib type system (binmode)
C:\cygwin on / type system (binmode)
c: on /cygdrive/c type user (binmode,noumount)
d: on /cygdrive/d type user (binmode,noumount)
g: on /cygdrive/g type user (binmode,noumount)
x: on /cygdrive/x type user (binmode,noumount)
z: on /cygdrive/z type user (binmode,noumount)
My program needs to run on an external media that comes with Cygwin on
it. I have no control over what drive is assigned to that media, but
for some reason, I do need to know the letter.


Why?

--
Kristian

kristian.zoerhoff(AT)gmail.com
zoerhoff(AT)freeshell.org
Jul 19 '05 #2

How about doing "cygpath -w /home/user" and picking the drive letter?

Raghu.

Jul 19 '05 #3
Forwarding to list, as you forgot to Reply-all (Don't worry, we all do
it at least once!).

---------- Forwarded message ----------
From: Mayer Goldberg <gm****@little-lisper.org>
Date: Apr 26, 2005 3:01 PM
Subject: Re: how to find the drive in python/cygwin?
To: Kristian Zoerhoff <kr***************@gmail.com>
Dear Kristian:

Thanks for the very fast reply! I wasn't thinking of the mount command
-- this is really the correct way to think about my problem.
My program needs to run on an external media that comes with Cygwin on
it. I have no control over what drive is assigned to that media, but
for some reason, I do need to know the letter.


Why?


Basically this has to do with moving around: I use different computers
throughout the day, and need to carry with me a sane and productive
computing environment. Rebooting to linux is not an option for me, so I
need a Windows solution. I found it in the form of a 40G pocket hard
drive with a USB connection. I plug in the connection, go to my software
subdirectory and run what I need. I have a mixture of Unix and Windows
programs, and often I have to run a Windows program instead of a unix
program (for example, I run miktex instead of the tetex that comes with
cygwin). The Windows utilities need to be passed arguments in DOS
format, i.e., something like G:\FOO\foo.dll. Cygwin is only one specific
application I use, so I didn't install everything under the / (which
would have solved many problems for me!). As a result, I need to know
the drive letter.

Thanks again,

Mayer
--
Kristian

kristian.zoerhoff(AT)gmail.com
zoerhoff(AT)freeshell.org
Jul 19 '05 #4
Hi All--
Use win32api to find drives:

====cut here====
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
import os.path
import win32api
import sys
def findAllDrives():
Drives=[]
print "Searching for drives..."
drives=win32api.GetLogicalDriveStrings().split(":" )
for i in drives:
dr=i[-1].lower()
if dr.isalpha():
dr+=":\\"
inf=None
try:
inf=win32api.GetVolumeInformation(dr)
except:
pass # Removable drive, not ready
# You'll still get the drive letter, but inf will be None
Drives.append([dr,inf])
return Drives

if __name__=="__main__":
drives=findAllDrives()
for i in drives:
print i[0],i[1]

====cut here====

Metta,
Ivan
----------------------------------------------
Ivan Van Laningham
God N Locomotive Works
http://www.andi-holmes.com/
http://www.foretec.com/python/worksh...oceedings.html
Army Signal Corps: Cu Chi, Class of '70
Author: Teach Yourself Python in 24 Hours
Jul 19 '05 #5
Ivan,

On Tue, Apr 26, 2005 at 07:02:48PM -0600, Ivan Van Laningham wrote:
Use win32api to find drives:

====cut here====
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
import os.path
import win32api
[snip]


AFAICT, the win32api module has not been ported to Cygwin Python.

Jason

--
PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers
Fingerprint: 7A73 1405 7F2B E669 C19D 8784 1AFD E4CC ECF4 8EF6
Jul 19 '05 #6
Hi All--

Jason Tishler wrote:

Ivan,

On Tue, Apr 26, 2005 at 07:02:48PM -0600, Ivan Van Laningham wrote:
Use win32api to find drives:

====cut here====
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
import os.path
import win32api
[snip]


AFAICT, the win32api module has not been ported to Cygwin Python.


I'm not running Cygwin, but Uwin. I installed regular Python:
Python 2.4 (#60, Nov 30 2004, 11:49:19) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
^Z

with the win32api that matched. I have no trouble running it. Is there
some reason to prefer a Python compiled by the Cygwin tools?

Metta,
Ivan
----------------------------------------------
Ivan Van Laningham
God N Locomotive Works
http://www.andi-holmes.com/
http://www.foretec.com/python/worksh...oceedings.html
Army Signal Corps: Cu Chi, Class of '70
Author: Teach Yourself Python in 24 Hours
Jul 19 '05 #7
Ivan,

On Sat, Apr 30, 2005 at 07:29:32AM -0600, Ivan Van Laningham wrote:
Jason Tishler wrote:
On Tue, Apr 26, 2005 at 07:02:48PM -0600, Ivan Van Laningham wrote:
Use win32api to find drives:

====cut here====
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
import os.path
import win32api
[snip]


AFAICT, the win32api module has not been ported to Cygwin Python.


I'm not running Cygwin, but Uwin. I installed regular Python:

Python 2.4 (#60, Nov 30 2004, 11:49:19) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
^Z


with the win32api that matched. I have no trouble running it. Is
there some reason to prefer a Python compiled by the Cygwin tools?


It depends on your needs. If you are looking for a more Unix-like
Python, then the Cygwin version would probably be better. If
Windows-like, then the native Windows version would probably be better.

The OP seem to be interested in a Cygwin Python solution -- not a
Windows one. So, I was just clarifying that the win32api module is not
supported under Cygwin Python.

Jason

--
PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers
Fingerprint: 7A73 1405 7F2B E669 C19D 8784 1AFD E4CC ECF4 8EF6
Jul 19 '05 #8
Hi All--

Jason Tishler wrote:

Ivan,

It depends on your needs. If you are looking for a more Unix-like
Python, then the Cygwin version would probably be better. If
Windows-like, then the native Windows version would probably be better.

The OP seem to be interested in a Cygwin Python solution -- not a
Windows one. So, I was just clarifying that the win32api module is not
supported under Cygwin Python.


Could you clarify? I always thought that the only thing really
different were the default path assumptions--/ instead of \, and so
on--rather than anything substantive. I try to use os.path.sep() and
os.path.join(), etc.

What else could bite me? ;-)

Metta,
Ivan
----------------------------------------------
Ivan Van Laningham
God N Locomotive Works
http://www.andi-holmes.com/
http://www.foretec.com/python/worksh...oceedings.html
Army Signal Corps: Cu Chi, Class of '70
Author: Teach Yourself Python in 24 Hours
Jul 19 '05 #9
Ivan,

On Sat, Apr 30, 2005 at 08:44:55AM -0600, Ivan Van Laningham wrote:
Jason Tishler wrote:
I was just clarifying that the win32api module is not supported
under Cygwin Python.


Could you clarify? I always thought that the only thing really
different were the default path assumptions--/ instead of \, and so
on--rather than anything substantive. I try to use os.path.sep() and
os.path.join(), etc.

What else could bite me? ;-)


Not much -- at least not too hard. :,) Anyway, only the low level stuff
would be different: Posix versus Win32, shared extensions, etc. The
high level stuff should be the same -- isn't Python just Python. :,)

Jason

--
PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers
Fingerprint: 7A73 1405 7F2B E669 C19D 8784 1AFD E4CC ECF4 8EF6
Jul 19 '05 #10

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

Similar topics

0
by: Jari Aalto+usenet | last post by:
Hi, Where I can specify more linking search directories for a Python module that makes a gcc build? Setting the LD_LIBRARY_PATH on command line does not seem to propagate to the linker. Jari...
2
by: Jörg Maier | last post by:
Hey guys, i have a big problem using Tkinter and pexpect in cygwin. i try to program an winscp-like rsync Program for all posix Platforms (linux, macosx, cygwin). i got a class SslConnection...
4
by: Andreou Giannis | last post by:
Allthough it is possible to build modules in Python2.3.3 and distutils with cygwin, by running: setup.py build --compiler=cygwin (after i created the libpython23.a) running: setup.py install...
2
by: Jorgen Grahn | last post by:
I couldn't think of a good solution, and it's hard to Google for... I write python command-line programs under Win2k, and I use the bash shell from Cygwin. I cannot use Cygwin's python package...
3
by: RMJ | last post by:
After installing Enthought's python and typing 'python' from within cygwin the program hangs with no output. I do not remember this being the case with earlier versions of Enthought python. Is...
0
by: Adam McCarthy | last post by:
I'm trying to get a cross compiler working for arm-wince-pe. This is the output for the primes Pyrex example. If I compile simple Hello, World's etc, it works fine, but for some reason Python...
66
by: Srijit Kumar Bhadra | last post by:
Is there any specific reason for not using MinGW to build the official distribution of Python for Win32? A quick Google search did not reveal the answer to my question. If a link is available,...
9
by: Endless Story | last post by:
My last version of Python was 2.4, running smoothly on XP with path c: \Python24 - no need even to include this path in PATH; everything worked as it's supposed to at the command line. Just...
7
by: Anton Mellit | last post by:
Hi, I am working on a Pari-Python module (see about GP/PARI at http://pari.math.u-bordeaux.fr/). Similar project was started by Stefane Fermigier 12 years ago (you can find a post about it on...
0
by: abbasky | last post by:
### Vandf component communication method one: data sharing ​ Vandf components can achieve data exchange through data sharing, state sharing, events, and other methods. Vandf's data exchange method...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 7 Feb 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:30 (7.30PM). In this month's session, the creator of the excellent VBE...
0
Git
by: egorbl4 | last post by:
Скачал я git, хотел начать настройку, а там вылезло вот это Что это? Что мне с этим делать? ...
1
by: davi5007 | last post by:
Hi, Basically, I am trying to automate a field named TraceabilityNo into a web page from an access form. I've got the serial held in the variable strSearchString. How can I get this into the...
0
by: MeoLessi9 | last post by:
I have VirtualBox installed on Windows 11 and now I would like to install Kali on a virtual machine. However, on the official website, I see two options: "Installer images" and "Virtual machines"....
0
by: DolphinDB | last post by:
The formulas of 101 quantitative trading alphas used by WorldQuant were presented in the paper 101 Formulaic Alphas. However, some formulas are complex, leading to challenges in calculation. Take...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: Aftab Ahmad | last post by:
Hello Experts! I have written a code in MS Access for a cmd called "WhatsApp Message" to open WhatsApp using that very code but the problem is that it gives a popup message everytime I clicked on...
0
by: marcoviolo | last post by:
Dear all, I would like to implement on my worksheet an vlookup dynamic , that consider a change of pivot excel via win32com, from an external excel (without open it) and save the new file into a...

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.