Re: problems with opening files due to file's path

Discussion in 'Python' started by Alexnb, Jun 10, 2008.

  1. Alexnb

    Alexnb Guest

    Gerhard Häring wrote:
    >
    > Alexnb wrote:
    >> Okay, so what I want my program to do it open a file, a music file in
    >> specific, and for this we will say it is an .mp3. Well, I am using the
    >> system() command from the os class. [...]
    >>
    >> system("\"C:\Documents and Settings\Alex\My Documents\My
    >> Music\Rhapsody\Bryanbros\Weezer\(2001)\04 - Island In The Sun.wma\"")
    >> [...]

    >
    > Try os.startfile() instead. It should work better.
    >
    > -- Gerhard
    >
    > --
    > http://mail.python.org/mailman/listinfo/python-list
    >
    >



    No, it didn't work, but it gave me some interesting feedback when I ran it
    in the shell. Heres what it told me:

    >>> os.startfile("C:\Documents and Settings\Alex\My Documents\My
    >>> Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm
    >>> Yours.wma")


    Traceback (most recent call last):
    File "<pyshell#10>", line 1, in <module>
    os.startfile("C:\Documents and Settings\Alex\My Documents\My
    Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm Yours.wma")

    WindowsError: [Error 2] The system cannot find the file specified:
    "C:\\Documents and Settings\\Alex\\My Documents\\My
    Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I'm Yours (Single)\x01 - I'm
    Yours.wma"

    See it made each backslash into two, and the one by the parenthesis and the
    0 turned into an x....
    --
    View this message in context: http://www.nabble.com/problems-with-opening-files-due-to-file's-path-tp17759531p17759825.html
    Sent from the Python - python-list mailing list archive at Nabble.com.
     
    Alexnb, Jun 10, 2008
    #1
    1. Advertising

  2. On Jun 10, 11:45 am, Alexnb <> wrote:
    > Gerhard Häring wrote:
    >
    > > Alexnb wrote:
    > >> Okay, so what I want my program to do it open a file, a music file in
    > >> specific, and for this we will say it is an .mp3. Well, I am using the
    > >> system() command from the os class. [...]

    >
    > >> system("\"C:\Documents and Settings\Alex\My Documents\My
    > >> Music\Rhapsody\Bryanbros\Weezer\(2001)\04 - Island In The Sun.wma\"")
    > >> [...]

    >
    > > Try os.startfile() instead. It should work better.

    >
    > > -- Gerhard

    >
    > > --
    > >http://mail.python.org/mailman/listinfo/python-list

    >
    > No, it didn't work, but it gave me some interesting feedback when I ran it
    > in the shell. Heres what it told me:
    >
    > >>> os.startfile("C:\Documents and Settings\Alex\My Documents\My
    > >>> Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm
    > >>> Yours.wma")

    >
    > Traceback (most recent call last):
    >   File "<pyshell#10>", line 1, in <module>
    >     os.startfile("C:\Documents and Settings\Alex\My Documents\My
    > Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm Yours.wma")
    >
    > WindowsError: [Error 2] The system cannot find the file specified:
    > "C:\\Documents and Settings\\Alex\\My Documents\\My
    > Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I'm Yours (Single)\x01 - I'm
    > Yours.wma"
    >
    > See it made each backslash into two, and the one by the parenthesis and the
    > 0 turned into an x....
    > --
    > View this message in context:http://www.nabble.com/problems-with-opening-files-due-to-file's-pat...
    > Sent from the Python - python-list mailing list archive at Nabble.com.


    Yeah. You need to either double all the backslashes or make it a raw
    string by adding an "r" to the beginning, like so:

    os.startfile(r'C:\path\to\my\file')

    HTH

    Mike
     
    Mike Driscoll, Jun 10, 2008
    #2
    1. Advertising

  3. Alexnb

    Alexnb Guest

    Hey thanks!, both the raw and the double backslashes worked. You are a
    gentleman and a scholar.

    Mike Driscoll wrote:
    >
    > On Jun 10, 11:45 am, Alexnb <> wrote:
    >> Gerhard Häring wrote:
    >>
    >> > Alexnb wrote:
    >> >> Okay, so what I want my program to do it open a file, a music file in
    >> >> specific, and for this we will say it is an .mp3. Well, I am using the
    >> >> system() command from the os class. [...]

    >>
    >> >> system("\"C:\Documents and Settings\Alex\My Documents\My
    >> >> Music\Rhapsody\Bryanbros\Weezer\(2001)\04 - Island In The Sun.wma\"")
    >> >> [...]

    >>
    >> > Try os.startfile() instead. It should work better.

    >>
    >> > -- Gerhard

    >>
    >> > --
    >> >http://mail.python.org/mailman/listinfo/python-list

    >>
    >> No, it didn't work, but it gave me some interesting feedback when I ran
    >> it
    >> in the shell. Heres what it told me:
    >>
    >> >>> os.startfile("C:\Documents and Settings\Alex\My Documents\My
    >> >>> Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm
    >> >>> Yours.wma")

    >>
    >> Traceback (most recent call last):
    >> File "<pyshell#10>", line 1, in <module>
    >> os.startfile("C:\Documents and Settings\Alex\My Documents\My
    >> Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm
    >> Yours.wma")
    >>
    >> WindowsError: [Error 2] The system cannot find the file specified:
    >> "C:\\Documents and Settings\\Alex\\My Documents\\My
    >> Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I'm Yours (Single)\x01 - I'm
    >> Yours.wma"
    >>
    >> See it made each backslash into two, and the one by the parenthesis and
    >> the
    >> 0 turned into an x....
    >> --
    >> View this message in
    >> context:http://www.nabble.com/problems-with-opening-files-due-to-file's-pat...
    >> Sent from the Python - python-list mailing list archive at Nabble.com.

    >
    > Yeah. You need to either double all the backslashes or make it a raw
    > string by adding an "r" to the beginning, like so:
    >
    > os.startfile(r'C:\path\to\my\file')
    >
    > HTH
    >
    > Mike
    > --
    > http://mail.python.org/mailman/listinfo/python-list
    >
    >


    --
    View this message in context: http://www.nabble.com/problems-with-opening-files-due-to-file's-path-tp17759531p17761126.html
    Sent from the Python - python-list mailing list archive at Nabble.com.
     
    Alexnb, Jun 10, 2008
    #3
  4. Alexnb

    Alexnb Guest

    Well, now i've hit another problem, this time being that the path will be a
    variable, and I can't figure out how to make startfile() make it raw with a
    variable, if I put startfile(r variable), it doesn't work and
    startfile(rvariable) obviously won't work, do you know how to make that work
    or better yet, how to take a regular string that is given and make every
    single "\" into a double "\\"?

    Mike Driscoll wrote:
    >
    > On Jun 10, 11:45 am, Alexnb <> wrote:
    >> Gerhard Häring wrote:
    >>
    >> > Alexnb wrote:
    >> >> Okay, so what I want my program to do it open a file, a music file in
    >> >> specific, and for this we will say it is an .mp3. Well, I am using the
    >> >> system() command from the os class. [...]

    >>
    >> >> system("\"C:\Documents and Settings\Alex\My Documents\My
    >> >> Music\Rhapsody\Bryanbros\Weezer\(2001)\04 - Island In The Sun.wma\"")
    >> >> [...]

    >>
    >> > Try os.startfile() instead. It should work better.

    >>
    >> > -- Gerhard

    >>
    >> > --
    >> >http://mail.python.org/mailman/listinfo/python-list

    >>
    >> No, it didn't work, but it gave me some interesting feedback when I ran
    >> it
    >> in the shell. Heres what it told me:
    >>
    >> >>> os.startfile("C:\Documents and Settings\Alex\My Documents\My
    >> >>> Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm
    >> >>> Yours.wma")

    >>
    >> Traceback (most recent call last):
    >> File "<pyshell#10>", line 1, in <module>
    >> os.startfile("C:\Documents and Settings\Alex\My Documents\My
    >> Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm
    >> Yours.wma")
    >>
    >> WindowsError: [Error 2] The system cannot find the file specified:
    >> "C:\\Documents and Settings\\Alex\\My Documents\\My
    >> Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I'm Yours (Single)\x01 - I'm
    >> Yours.wma"
    >>
    >> See it made each backslash into two, and the one by the parenthesis and
    >> the
    >> 0 turned into an x....
    >> --
    >> View this message in
    >> context:http://www.nabble.com/problems-with-opening-files-due-to-file's-pat...
    >> Sent from the Python - python-list mailing list archive at Nabble.com.

    >
    > Yeah. You need to either double all the backslashes or make it a raw
    > string by adding an "r" to the beginning, like so:
    >
    > os.startfile(r'C:\path\to\my\file')
    >
    > HTH
    >
    > Mike
    > --
    > http://mail.python.org/mailman/listinfo/python-list
    >
    >


    --
    View this message in context: http://www.nabble.com/problems-with-opening-files-due-to-file's-path-tp17759531p17761338.html
    Sent from the Python - python-list mailing list archive at Nabble.com.
     
    Alexnb, Jun 10, 2008
    #4
  5. maybe try string substitution... not sure if that's really the BEST way to
    do it but it should work

    startfile(r"%s"%variable)

    --------------------------------------------------
    From: "Alexnb" <>
    Sent: Tuesday, June 10, 2008 7:05 PM
    To: <>
    Subject: Re: problems with opening files due to file's path

    >
    > Well, now i've hit another problem, this time being that the path will be
    > a
    > variable, and I can't figure out how to make startfile() make it raw with
    > a
    > variable, if I put startfile(r variable), it doesn't work and
    > startfile(rvariable) obviously won't work, do you know how to make that
    > work
    > or better yet, how to take a regular string that is given and make every
    > single "\" into a double "\\"?
    >
    > Mike Driscoll wrote:
    >>
    >> On Jun 10, 11:45 am, Alexnb <> wrote:
    >>> Gerhard Häring wrote:
    >>>
    >>> > Alexnb wrote:
    >>> >> Okay, so what I want my program to do it open a file, a music file in
    >>> >> specific, and for this we will say it is an .mp3. Well, I am using
    >>> >> the
    >>> >> system() command from the os class. [...]
    >>>
    >>> >> system("\"C:\Documents and Settings\Alex\My Documents\My
    >>> >> Music\Rhapsody\Bryanbros\Weezer\(2001)\04 - Island In The Sun.wma\"")
    >>> >> [...]
    >>>
    >>> > Try os.startfile() instead. It should work better.
    >>>
    >>> > -- Gerhard
    >>>
    >>> > --
    >>> >http://mail.python.org/mailman/listinfo/python-list
    >>>
    >>> No, it didn't work, but it gave me some interesting feedback when I ran
    >>> it
    >>> in the shell. Heres what it told me:
    >>>
    >>> >>> os.startfile("C:\Documents and Settings\Alex\My Documents\My
    >>> >>> Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm
    >>> >>> Yours.wma")
    >>>
    >>> Traceback (most recent call last):
    >>> File "<pyshell#10>", line 1, in <module>
    >>> os.startfile("C:\Documents and Settings\Alex\My Documents\My
    >>> Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm
    >>> Yours.wma")
    >>>
    >>> WindowsError: [Error 2] The system cannot find the file specified:
    >>> "C:\\Documents and Settings\\Alex\\My Documents\\My
    >>> Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I'm Yours (Single)\x01 - I'm
    >>> Yours.wma"
    >>>
    >>> See it made each backslash into two, and the one by the parenthesis and
    >>> the
    >>> 0 turned into an x....
    >>> --
    >>> View this message in
    >>> context:http://www.nabble.com/problems-with-opening-files-due-to-file's-pat...
    >>> Sent from the Python - python-list mailing list archive at Nabble.com.

    >>
    >> Yeah. You need to either double all the backslashes or make it a raw
    >> string by adding an "r" to the beginning, like so:
    >>
    >> os.startfile(r'C:\path\to\my\file')
    >>
    >> HTH
    >>
    >> Mike
    >> --
    >> http://mail.python.org/mailman/listinfo/python-list
    >>
    >>

    >
    > --
    > View this message in context:
    > http://www.nabble.com/problems-with-opening-files-due-to-file's-path-tp17759531p17761338.html
    > Sent from the Python - python-list mailing list archive at Nabble.com.
    >
    > --
    > http://mail.python.org/mailman/listinfo/python-list
     
    Thomas Morton, Jun 10, 2008
    #5
  6. Alexnb

    Alexnb Guest

    No this time it perhaps gave me the worst of all heres what I entered, and
    the output

    >>> startfile(r"%s"%full) ***full is the path***


    startfile(r"%s"%full)

    WindowsError: [Error 2] The system cannot find the file specified:
    '"C:\\Documents and Settings\\Alex\\My Documents\\My
    Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I\'m Yours (Single)\x01 - I\'m
    Yours.wma"'


    Thomas Morton wrote:
    >
    > maybe try string substitution... not sure if that's really the BEST way to
    > do it but it should work
    >
    > startfile(r"%s"%variable)
    >
    > --------------------------------------------------
    > From: "Alexnb" <>
    > Sent: Tuesday, June 10, 2008 7:05 PM
    > To: <>
    > Subject: Re: problems with opening files due to file's path
    >
    >>
    >> Well, now i've hit another problem, this time being that the path will be
    >> a
    >> variable, and I can't figure out how to make startfile() make it raw with
    >> a
    >> variable, if I put startfile(r variable), it doesn't work and
    >> startfile(rvariable) obviously won't work, do you know how to make that
    >> work
    >> or better yet, how to take a regular string that is given and make every
    >> single "\" into a double "\\"?
    >>
    >> Mike Driscoll wrote:
    >>>
    >>> On Jun 10, 11:45 am, Alexnb <> wrote:
    >>>> Gerhard Häring wrote:
    >>>>
    >>>> > Alexnb wrote:
    >>>> >> Okay, so what I want my program to do it open a file, a music file
    >>>> in
    >>>> >> specific, and for this we will say it is an .mp3. Well, I am using
    >>>> >> the
    >>>> >> system() command from the os class. [...]
    >>>>
    >>>> >> system("\"C:\Documents and Settings\Alex\My Documents\My
    >>>> >> Music\Rhapsody\Bryanbros\Weezer\(2001)\04 - Island In The
    >>>> Sun.wma\"")
    >>>> >> [...]
    >>>>
    >>>> > Try os.startfile() instead. It should work better.
    >>>>
    >>>> > -- Gerhard
    >>>>
    >>>> > --
    >>>> >http://mail.python.org/mailman/listinfo/python-list
    >>>>
    >>>> No, it didn't work, but it gave me some interesting feedback when I ran
    >>>> it
    >>>> in the shell. Heres what it told me:
    >>>>
    >>>> >>> os.startfile("C:\Documents and Settings\Alex\My Documents\My
    >>>> >>> Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm
    >>>> >>> Yours.wma")
    >>>>
    >>>> Traceback (most recent call last):
    >>>> File "<pyshell#10>", line 1, in <module>
    >>>> os.startfile("C:\Documents and Settings\Alex\My Documents\My
    >>>> Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm
    >>>> Yours.wma")
    >>>>
    >>>> WindowsError: [Error 2] The system cannot find the file specified:
    >>>> "C:\\Documents and Settings\\Alex\\My Documents\\My
    >>>> Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I'm Yours (Single)\x01 - I'm
    >>>> Yours.wma"
    >>>>
    >>>> See it made each backslash into two, and the one by the parenthesis and
    >>>> the
    >>>> 0 turned into an x....
    >>>> --
    >>>> View this message in
    >>>> context:http://www.nabble.com/problems-with-opening-files-due-to-file's-pat...
    >>>> Sent from the Python - python-list mailing list archive at Nabble.com.
    >>>
    >>> Yeah. You need to either double all the backslashes or make it a raw
    >>> string by adding an "r" to the beginning, like so:
    >>>
    >>> os.startfile(r'C:\path\to\my\file')
    >>>
    >>> HTH
    >>>
    >>> Mike
    >>> --
    >>> http://mail.python.org/mailman/listinfo/python-list
    >>>
    >>>

    >>
    >> --
    >> View this message in context:
    >> http://www.nabble.com/problems-with-opening-files-due-to-file's-path-tp17759531p17761338.html
    >> Sent from the Python - python-list mailing list archive at Nabble.com.
    >>
    >> --
    >> http://mail.python.org/mailman/listinfo/python-list

    >
    > --
    > http://mail.python.org/mailman/listinfo/python-list
    >


    --
    View this message in context: http://www.nabble.com/problems-with-opening-files-due-to-file's-path-tp17759531p17761946.html
    Sent from the Python - python-list mailing list archive at Nabble.com.
     
    Alexnb, Jun 10, 2008
    #6
  7. On Jun 10, 1:25 pm, "Thomas Morton" <>
    wrote:
    > maybe try string substitution... not sure if that's really the BEST way to
    > do it but it should work
    >
    > startfile(r"%s"%variable)



    I concur. That should work. A slightly more in depth example (assuming
    Windows):

    os.startfile(r'C:\Documents and Settings\%s\Desktop\myApp.exe' %
    username)

    or

    os.startfile(r'C:\Program Files\%s' % myApp)

    Hopefully this is what you are talking about. If you were referring to
    passing in arguments, than you'll want to use the subprocess module
    instead.


    >
    > --------------------------------------------------
    > From: "Alexnb" <>
    > Sent: Tuesday, June 10, 2008 7:05 PM
    > To: <>
    > Subject: Re: problems with opening files due to file's path
    >
    >
    >
    > > Well, now i've hit another problem, this time being that the path will be
    > > a
    > > variable, and I can't figure out how to make startfile() make it raw with
    > > a
    > > variable, if I put startfile(r variable), it doesn't work and
    > > startfile(rvariable) obviously won't work, do you know how to make that
    > > work
    > > or better yet, how to take a regular string that is given and make every
    > > single "\" into a double "\\"?

    >


    <snip>

    Mike
     
    Mike Driscoll, Jun 10, 2008
    #7
  8. Alexnb

    Alexnb Guest

    That would work, but not for what I want. See the file could be anywhere on
    the user's system and so the entire path will be unique, and that didn't
    work with a unique path. What is the subprocess module you are talking
    about?

    Mike Driscoll wrote:
    >
    > On Jun 10, 1:25 pm, "Thomas Morton" <>
    > wrote:
    >> maybe try string substitution... not sure if that's really the BEST way
    >> to
    >> do it but it should work
    >>
    >> startfile(r"%s"%variable)

    >
    >
    > I concur. That should work. A slightly more in depth example (assuming
    > Windows):
    >
    > os.startfile(r'C:\Documents and Settings\%s\Desktop\myApp.exe' %
    > username)
    >
    > or
    >
    > os.startfile(r'C:\Program Files\%s' % myApp)
    >
    > Hopefully this is what you are talking about. If you were referring to
    > passing in arguments, than you'll want to use the subprocess module
    > instead.
    >
    >
    >>
    >> --------------------------------------------------
    >> From: "Alexnb" <>
    >> Sent: Tuesday, June 10, 2008 7:05 PM
    >> To: <>
    >> Subject: Re: problems with opening files due to file's path
    >>
    >>
    >>
    >> > Well, now i've hit another problem, this time being that the path will

    >> be
    >> > a
    >> > variable, and I can't figure out how to make startfile() make it raw

    >> with
    >> > a
    >> > variable, if I put startfile(r variable), it doesn't work and
    >> > startfile(rvariable) obviously won't work, do you know how to make that
    >> > work
    >> > or better yet, how to take a regular string that is given and make

    >> every
    >> > single "\" into a double "\\"?

    >>

    >
    > <snip>
    >
    > Mike
    > --
    > http://mail.python.org/mailman/listinfo/python-list
    >
    >


    --
    View this message in context: http://www.nabble.com/problems-with-opening-files-due-to-file's-path-tp17759531p17762276.html
    Sent from the Python - python-list mailing list archive at Nabble.com.
     
    Alexnb, Jun 10, 2008
    #8
  9. heh thanks Mike - glad im not going mad :p

    Just tested locally in IDLE (I know I know!) and it works for me like this:

    >>> test = os.path.join(os.getcwd(),"NEWS.txt")
    >>> test

    'D:\\Python25\\NEWS.txt'
    >>> os.startfile(r"%s"%test)
    >>>


    And the file opens...

    Does the file definitely exist?

    Tom
    --------------------------------------------------
    From: "Alexnb" <>
    Sent: Tuesday, June 10, 2008 7:37 PM
    To: <>
    Subject: Re: problems with opening files due to file's path

    >
    > No this time it perhaps gave me the worst of all heres what I entered, and
    > the output
    >
    >>>> startfile(r"%s"%full) ***full is the path***

    >
    > startfile(r"%s"%full)
    >
    > WindowsError: [Error 2] The system cannot find the file specified:
    > '"C:\\Documents and Settings\\Alex\\My Documents\\My
    > Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I\'m Yours (Single)\x01 - I\'m
    > Yours.wma"'
    >
    >
    > Thomas Morton wrote:
    >>
    >> maybe try string substitution... not sure if that's really the BEST way
    >> to
    >> do it but it should work
    >>
    >> startfile(r"%s"%variable)
    >>
    >> --------------------------------------------------
    >> From: "Alexnb" <>
    >> Sent: Tuesday, June 10, 2008 7:05 PM
    >> To: <>
    >> Subject: Re: problems with opening files due to file's path
    >>
    >>>
    >>> Well, now i've hit another problem, this time being that the path will
    >>> be
    >>> a
    >>> variable, and I can't figure out how to make startfile() make it raw
    >>> with
    >>> a
    >>> variable, if I put startfile(r variable), it doesn't work and
    >>> startfile(rvariable) obviously won't work, do you know how to make that
    >>> work
    >>> or better yet, how to take a regular string that is given and make every
    >>> single "\" into a double "\\"?
    >>>
    >>> Mike Driscoll wrote:
    >>>>
    >>>> On Jun 10, 11:45 am, Alexnb <> wrote:
    >>>>> Gerhard Häring wrote:
    >>>>>
    >>>>> > Alexnb wrote:
    >>>>> >> Okay, so what I want my program to do it open a file, a music file
    >>>>> in
    >>>>> >> specific, and for this we will say it is an .mp3. Well, I am using
    >>>>> >> the
    >>>>> >> system() command from the os class. [...]
    >>>>>
    >>>>> >> system("\"C:\Documents and Settings\Alex\My Documents\My
    >>>>> >> Music\Rhapsody\Bryanbros\Weezer\(2001)\04 - Island In The
    >>>>> Sun.wma\"")
    >>>>> >> [...]
    >>>>>
    >>>>> > Try os.startfile() instead. It should work better.
    >>>>>
    >>>>> > -- Gerhard
    >>>>>
    >>>>> > --
    >>>>> >http://mail.python.org/mailman/listinfo/python-list
    >>>>>
    >>>>> No, it didn't work, but it gave me some interesting feedback when I
    >>>>> ran
    >>>>> it
    >>>>> in the shell. Heres what it told me:
    >>>>>
    >>>>> >>> os.startfile("C:\Documents and Settings\Alex\My Documents\My
    >>>>> >>> Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm
    >>>>> >>> Yours.wma")
    >>>>>
    >>>>> Traceback (most recent call last):
    >>>>> File "<pyshell#10>", line 1, in <module>
    >>>>> os.startfile("C:\Documents and Settings\Alex\My Documents\My
    >>>>> Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm
    >>>>> Yours.wma")
    >>>>>
    >>>>> WindowsError: [Error 2] The system cannot find the file specified:
    >>>>> "C:\\Documents and Settings\\Alex\\My Documents\\My
    >>>>> Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I'm Yours (Single)\x01 - I'm
    >>>>> Yours.wma"
    >>>>>
    >>>>> See it made each backslash into two, and the one by the parenthesis
    >>>>> and
    >>>>> the
    >>>>> 0 turned into an x....
    >>>>> --
    >>>>> View this message in
    >>>>> context:http://www.nabble.com/problems-with-opening-files-due-to-file's-pat...
    >>>>> Sent from the Python - python-list mailing list archive at Nabble.com.
    >>>>
    >>>> Yeah. You need to either double all the backslashes or make it a raw
    >>>> string by adding an "r" to the beginning, like so:
    >>>>
    >>>> os.startfile(r'C:\path\to\my\file')
    >>>>
    >>>> HTH
    >>>>
    >>>> Mike
    >>>> --
    >>>> http://mail.python.org/mailman/listinfo/python-list
    >>>>
    >>>>
    >>>
    >>> --
    >>> View this message in context:
    >>> http://www.nabble.com/problems-with-opening-files-due-to-file's-path-tp17759531p17761338.html
    >>> Sent from the Python - python-list mailing list archive at Nabble.com.
    >>>
    >>> --
    >>> http://mail.python.org/mailman/listinfo/python-list

    >>
    >> --
    >> http://mail.python.org/mailman/listinfo/python-list
    >>

    >
    > --
    > View this message in context:
    > http://www.nabble.com/problems-with-opening-files-due-to-file's-path-tp17759531p17761946.html
    > Sent from the Python - python-list mailing list archive at Nabble.com.
    >
    > --
    > http://mail.python.org/mailman/listinfo/python-list
     
    Thomas Morton, Jun 10, 2008
    #9
  10. Alexnb wrote:
    > No this time it perhaps gave me the worst of all heres what I entered, and
    > the output
    >
    >>>> startfile(r"%s"%full) ***full is the path***

    >
    > startfile(r"%s"%full)
    >
    > WindowsError: [Error 2] The system cannot find the file specified:
    > '"C:\\Documents and Settings\\Alex\\My Documents\\My
    > Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I\'m Yours (Single)\x01 - I\'m
    > Yours.wma"'


    Contrary to what other posters have asserted, doing the above can't make
    a difference. Putting 'r' in front of a string literal tells Python not
    to give backslashes in the string literal any special treatment. Since
    there are no backslashes in "%s", the 'r' does nothing.

    Therefore, (r"%s"%full) is the same as ("%s"%full), which is the same as
    (full), assuming that `full` is the name of a string.

    The real answer lies in fixing the code where you're assigning the
    pathname to 'full', which you haven't posted. Please post the code where
    you're assigning the pathname, or better yet, post the complete code
    you're running.

    --
    Carsten Haese
    http://informixdb.sourceforge.net
     
    Carsten Haese, Jun 10, 2008
    #10
  11. On Jun 10, 2:09 pm, Carsten Haese <> wrote:
    > Alexnb wrote:
    > > No this time it perhaps gave me the worst of all heres what I entered, and
    > > the output

    >
    > >>>> startfile(r"%s"%full)    ***full is the path***

    >
    > > startfile(r"%s"%full)

    >
    > > WindowsError: [Error 2] The system cannot find the file specified:
    > > '"C:\\Documents and Settings\\Alex\\My Documents\\My
    > > Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I\'m Yours (Single)\x01 - I\'m
    > > Yours.wma"'

    >
    > Contrary to what other posters have asserted, doing the above can't make
    > a difference. Putting 'r' in front of a string literal tells Python not
    > to give backslashes in the string literal any special treatment. Since
    > there are no backslashes in "%s", the 'r' does nothing.



    I assumed the OP was trying to do the string substitution within a
    path. If the OP is instead doing as you think, then you are quite
    correct.

    >
    > Therefore, (r"%s"%full) is the same as ("%s"%full), which is the same as
    > (full), assuming that `full` is the name of a string.
    >
    > The real answer lies in fixing the code where you're assigning the
    > pathname to 'full', which you haven't posted. Please post the code where
    > you're assigning the pathname, or better yet, post the complete code
    > you're running.
    >
    > --
    > Carsten Haesehttp://informixdb.sourceforge.net



    Sometimes I get too eager to help and don't do enough mental
    processing before answering.

    Mike
     
    Mike Driscoll, Jun 10, 2008
    #11
  12. On Jun 10, 1:57 pm, Alexnb <> wrote:
    > That would work, but not for what I want. See the file could be anywhere on
    > the user's system and so the entire path will be unique, and that didn't
    > work with a unique path. What is the subprocess module you are talking
    > about?
    >



    <snip>

    As Carsten pointed out, we don't really know what you're doing. Or at
    least, I don't. Why do you even want to do string substitution? How
    does the user navigate to the files that the user wants to open? Are
    you using a GUI or a command line interface?

    Anyway, Google is your friend. Searching for "python subprocess" gives
    you this:

    http://docs.python.org/lib/module-subprocess.html

    Mike
     
    Mike Driscoll, Jun 10, 2008
    #12
  13. Alexnb

    Alexnb Guest

    I am using GUI, Tkinter to be exact. But regardless of how the path gets
    there, it needs to opened correctly. The problem I am running into is that
    the program receives a path of a file, either .wma or .mp3 and is supposed
    to open it. I run into problems when there is either a ")" or a number next
    to the backslash "\" in the file path. I am looking for a way to make it
    work with a variable, I can make it work when I physically type it in, but
    not with a variable that holds the path.



    Mike Driscoll wrote:
    >
    > On Jun 10, 1:57 pm, Alexnb <> wrote:
    >> That would work, but not for what I want. See the file could be anywhere
    >> on
    >> the user's system and so the entire path will be unique, and that didn't
    >> work with a unique path. What is the subprocess module you are talking
    >> about?
    >>

    >
    >
    > <snip>
    >
    > As Carsten pointed out, we don't really know what you're doing. Or at
    > least, I don't. Why do you even want to do string substitution? How
    > does the user navigate to the files that the user wants to open? Are
    > you using a GUI or a command line interface?
    >
    > Anyway, Google is your friend. Searching for "python subprocess" gives
    > you this:
    >
    > http://docs.python.org/lib/module-subprocess.html
    >
    > Mike
    > --
    > http://mail.python.org/mailman/listinfo/python-list
    >
    >


    --
    View this message in context: http://www.nabble.com/problems-with-opening-files-due-to-file's-path-tp17759531p17767518.html
    Sent from the Python - python-list mailing list archive at Nabble.com.
     
    Alexnb, Jun 11, 2008
    #13
  14. Alexnb

    Alexnb Guest

    Okay, I don't understand how it is too vague, but here:

    >>> path = "C:\Documents and Settings\Alex\My Documents\My
    >>> Music\Rhapsody\Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm
    >>> Yours.wma"
    >>> os.startfile(path)

    Traceback (most recent call last):
    File "<pyshell#39>", line 1, in <module>
    os.startfile(path)
    WindowsError: [Error 2] The system cannot find the file specified:
    "C:\\Documents and Settings\\Alex\\My Documents\\My
    Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I'm Yours (Single)\x01 - I'm
    Yours.wma"

    Here's another way:

    >>> os.startfile(r"%s"%path)

    Traceback (most recent call last):
    File "<pyshell#40>", line 1, in <module>
    os.startfile(r"%s"%path)
    WindowsError: [Error 2] The system cannot find the file specified:
    "C:\\Documents and Settings\\Alex\\My Documents\\My
    Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I'm Yours (Single)\x01 - I'm
    Yours.wma"

    Same output, however if I personally input it like so:

    >>> os.startfile("C:\\Documents and Settings\\Alex\\My Documents\\My
    >>> Music\\Rhapsody\\Bryanbros\\Jason Mraz\\I'm Yours (Single)\\01 - I'm
    >>> Yours.wma")


    It works out fine because I can make each backslash doubles so it doesn't
    mess stuff up. So if I could take the path varible and make ever "\" into a
    "\\" then it would also work.

    Did I clarify?



    Grant Edwards wrote:
    >
    > On 2008-06-11, Alexnb <> wrote:
    >
    >> I am using GUI, Tkinter to be exact. But regardless of how the
    >> path gets there, it needs to opened correctly. The problem I
    >> am running into is that the program receives a path of a file,
    >> either .wma or .mp3 and is supposed to open it. I run into
    >> problems when there is either a ")" or a number next to the
    >> backslash "\" in the file path. I am looking for a way to make
    >> it work with a variable, I can make it work when I physically
    >> type it in, but not with a variable that holds the path.

    >
    > You're going to have to show us code and example input and
    > output. Your description of the problem is far too vague for
    > anybody to help you.
    >
    > --
    > Grant Edwards grante Yow! With YOU, I can
    > be
    > at MYSELF... We don't NEED
    > visi.com Dan Rather...
    > --
    > http://mail.python.org/mailman/listinfo/python-list
    >
    >


    --
    View this message in context: http://www.nabble.com/problems-with-opening-files-due-to-file's-path-tp17759531p17768511.html
    Sent from the Python - python-list mailing list archive at Nabble.com.
     
    Alexnb, Jun 11, 2008
    #14
  15. Alexnb wrote:
    > Okay, I don't understand how it is too vague, but here:
    >
    > [snip a bunch of irrelevant examples...]
    >
    > Did I clarify?


    No. Earlier you wrote:

    >> On 2008-06-11, Alexnb <> wrote:
    >>> I am using GUI, Tkinter to be exact. But regardless of how the
    >>> path gets there, it needs to opened correctly.


    This implies that the file doesn't get opened correctly if the file name
    is entered/chosen in the GUI. Yet, the examples you posted don't contain
    any GUI code whatsoever. They merely demonstrate that you don't have a
    firm grasp on how backslashes in string literals are treated.

    So, this begs the question, do you actually have any GUI code that is
    failing, or are you just worried, given the problems you had with string
    literals, that the GUI code you have yet to write will fail in the same way?

    If this is the case, you should just write the GUI code and try it. It
    might just work. Backslashes entered into a GUI text box are not treated
    the same as backslashes in a Python string literal.

    If, on the other hand, you do have some GUI code for getting the file
    name from the user, and that code is failing, then please, show us THAT
    CODE and show us how it's failing.

    --
    Carsten Haese
    http://informixdb.sourceforge.net
     
    Carsten Haese, Jun 11, 2008
    #15
  16. Alexnb

    Alexnb Guest

    I don't think you understand it doesn't matter how the variable gets there,
    the same code is run regardless, I have no problem with the GUI, but you
    asked, and so I told you. the code os.startfile(.... is run if there is a
    GUI or it is a console app.


    Carsten Haese-2 wrote:
    >
    > Alexnb wrote:
    >> Okay, I don't understand how it is too vague, but here:
    >>
    > > [snip a bunch of irrelevant examples...]
    >>
    >> Did I clarify?

    >
    > No. Earlier you wrote:
    >
    >>> On 2008-06-11, Alexnb <> wrote:
    >>>> I am using GUI, Tkinter to be exact. But regardless of how the
    >>>> path gets there, it needs to opened correctly.

    >
    > This implies that the file doesn't get opened correctly if the file name
    > is entered/chosen in the GUI. Yet, the examples you posted don't contain
    > any GUI code whatsoever. They merely demonstrate that you don't have a
    > firm grasp on how backslashes in string literals are treated.
    >
    > So, this begs the question, do you actually have any GUI code that is
    > failing, or are you just worried, given the problems you had with string
    > literals, that the GUI code you have yet to write will fail in the same
    > way?
    >
    > If this is the case, you should just write the GUI code and try it. It
    > might just work. Backslashes entered into a GUI text box are not treated
    > the same as backslashes in a Python string literal.
    >
    > If, on the other hand, you do have some GUI code for getting the file
    > name from the user, and that code is failing, then please, show us THAT
    > CODE and show us how it's failing.
    >
    > --
    > Carsten Haese
    > http://informixdb.sourceforge.net
    > --
    > http://mail.python.org/mailman/listinfo/python-list
    >
    >


    --
    View this message in context: http://www.nabble.com/problems-with-opening-files-due-to-file's-path-tp17759531p17769178.html
    Sent from the Python - python-list mailing list archive at Nabble.com.
     
    Alexnb, Jun 11, 2008
    #16
  17. Alexnb wrote:
    > I don't think you understand it doesn't matter how the variable gets there


    But it *does* matter. Compare this:

    py> filename = "C:\Somewhere\01 - Some Song.mp3"
    py> print filename
    C:\Somewhere - Some Song.mp3

    To this:

    py> filename = raw_input("Enter the filename: ")
    Enter the filename: C:\Somewhere\01 - Some Song.mp3
    py> print filename
    C:\Somewhere\01 - Some Song.mp3

    Note that the "\01" in the first case seems to have disappeared, whereas
    in the second case it's preserved.

    Now, if you want us to help you, please post your ACTUAL code with a
    description of the ACTUAL problem.

    --
    Carsten Haese
    http://informixdb.sourceforge.net
     
    Carsten Haese, Jun 11, 2008
    #17
  18. Alexnb

    Lie Guest

    On Jun 11, 10:07 am, Alexnb <> wrote:
    > I don't think you understand it doesn't matter how the variable gets there,
    > the same code is run regardless, I have no problem with the GUI, but you
    > asked, and so I told you. the code os.startfile(.... is run if there is a
    > GUI or it is a console app.


    (snip)

    I think I know why you get confused by this, clearly, you have no idea
    of what an escape character and escape sequence is.

    Python (and C/C++ and some other languages) treats \ (the backspace
    character) inside a string specially, it makes the character after the
    backspace lose their special meaning OR get a special meaning, you
    might probably be used to seeing something like this: 'First line
    \nSecond Line', which when printed, would give:

    >>> print 'First Line\nSecond Line'

    First Line
    Second Line

    The second behavior of the escape sequence is to make special
    character (generally the backspace itself), lose their special
    meaning:
    >>> print 'path\\file.txt'

    path\file.txt

    In some cases, you might sometimes want a path like this: 'path
    \nick.txt'
    if you do this:
    >>> print 'path\nick.txt'

    path
    ick.txt

    because the \n is considered as a newline.

    Instead, you should do this:
    >>> print 'path\\nick.txt'

    path\nick.txt

    or
    >>> print r'path\nick.txt'

    path\nick.txt

    the r'' string is raw string, most of the magics of a regular string
    '' is lost for an r'' string. It allows you to avoid the need to
    escape the special characters. Raw string is usually used for re
    (regular expressions) and paths in Windows both of which uses the
    backslash character regularly.

    you first case of:
    system("\"C:\Documents and Settings\Alex\My Documents\My Music\Rhapsody
    \Bryanbros\Weezer\(2001)\04 - Island In The Sun.wma\"")

    is interpreted by python as this:
    "C:\Documents and Settings\Alex\My Documents\My Music\Rhapsody
    \Bryanbros\Weezer\(2001) - Island In The Sun.wma"

    Notice that the '\0' is substituted into '', because \0 is the escape
    sequence for null character.
    (Personally I think python should raise errors if any escape character
    that isn't followed by a valid escape sequence is found (such as \D,
    \A, \M, \M, \R, \B, \W, \(), but perhaps they're trying not to be too
    mean for newbies.)

    that should be correctly written like this:
    system(r'"C:\Documents and Settings\Alex\My Documents\My Music\Rhapsody
    \Bryanbros\Weezer\(2001)\04 - Island In The Sun.wma"')
    or:
    system('"C:\\Documents and Settings\\Alex\\My Documents\\My Music\
    \Rhapsody\\Bryanbros\\Weezer\\(2001)\\04 - Island In The Sun.wma"')

    Now, to the next question:
    How if I want the path to come from a variable:
    path = "C:\Documents and Settings\Alex\My Documents\My Music\Rhapsody
    \Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm Yours.wma"
    os.startfile(path)

    I can see in a glance why it doesn't work, the string is escaped by
    python, it should be written like this.
    path = r"C:\Documents and Settings\Alex\My Documents\My Music\Rhapsody
    \Bryanbros\Jason Mraz\I'm Yours (Single)\01 - I'm Yours.wma"
    os.startfile(path)

    OR:
    path = "C:\\Documents and Settings\\Alex\\My Documents\\My Music\
    \Rhapsody\\Bryanbros\\Jason Mraz\\I'm Yours (Single)\\01 - I'm
    Yours.wma"
    os.startfile(path)

    In most GUI toolkits (including Tkinter) and raw_input() function,
    when you input a string (using the textbox, a.k.a Entry widget) it
    would automatically be escaped for you, so when you input 'path\path
    \file.txt', the GUI toolkit would convert it into 'path\\path\
    \file.txt'.
     
    Lie, Jun 11, 2008
    #18
  19. Lie wrote:
    > In most GUI toolkits (including Tkinter) and raw_input() function,
    > when you input a string (using the textbox, a.k.a Entry widget) it
    > would automatically be escaped for you, so when you input 'path\path
    > \file.txt', the GUI toolkit would convert it into 'path\\path\
    > \file.txt'.


    That's incorrect. If you enter text into a text box or in raw_input(),
    *no* conversion of backslashes is happening. A backslash entered in
    raw_input is just a backslash. A backslash entered in a textbox is just
    a backslash. A backslash read from a file is just a backslash.

    A "conversion" happens when you print the repr() of a string that was
    obtained from raw_input or from a text box, because repr() tries to show
    the string literal that would result in the contents, and in a string
    literal, a backslash is not (always) a backslash, so repr() escapes the
    backslashes:

    py> text = raw_input("Enter some text: ")
    Enter some text: This is a backslash: \
    py> print text
    This is a backslash: \
    py> print repr(text)
    'This is a backslash: \\'

    As you can see, I entered a single backslash, and the string ends up
    containing a single backslash. Only when I ask Python for the repr() of
    the string does the backslash get doubled up.

    --
    Carsten Haese
    http://informixdb.sourceforge.net
     
    Carsten Haese, Jun 11, 2008
    #19
  20. Alexnb

    Lie Guest

    On Jun 11, 9:14 pm, Carsten Haese <> wrote:
    > Lie wrote:
    > > In most GUI toolkits (including Tkinter) and raw_input() function,
    > > when you input a string (using the textbox, a.k.a Entry widget) it
    > > would automatically be escaped for you, so when you input 'path\path
    > > \file.txt', the GUI toolkit would convert it into 'path\\path\
    > > \file.txt'.

    >
    > That's incorrect. If you enter text into a text box or in raw_input(),
    > *no* conversion of backslashes is happening. A backslash entered in
    > raw_input is just a backslash. A backslash entered in a textbox is just
    > a backslash. A backslash read from a file is just a backslash.


    I know, but I thought it'd be easier for him to understand it like
    that and discover the real 'how-it-works' later. My guilt is that I
    forget to put a "this is not how it actually works behind the scene,
    but you can think of it like this at least for now since this model is
    easier to grasp (although misleading)".

    > A "conversion" happens when you print the repr() of a string that was
    > obtained from raw_input or from a text box, because repr() tries to show
    > the string literal that would result in the contents, and in a string
    > literal, a backslash is not (always) a backslash, so repr() escapes the
    > backslashes:
    >
    > py> text = raw_input("Enter some text: ")
    > Enter some text: This is a backslash: \
    > py> print text
    > This is a backslash: \
    > py> print repr(text)
    > 'This is a backslash: \\'
    >
    > As you can see, I entered a single backslash, and the string ends up
    > containing a single backslash. Only when I ask Python for the repr() of
    > the string does the backslash get doubled up.
    >
    > --
    > Carsten Haesehttp://informixdb.sourceforge.net
     
    Lie, Jun 11, 2008
    #20
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Jim
    Replies:
    0
    Views:
    309
  2. Fresh
    Replies:
    2
    Views:
    654
    Bo Persson
    Apr 22, 2008
  3. Alexnb
    Replies:
    0
    Views:
    294
    Alexnb
    Jun 10, 2008
  4. eran
    Replies:
    6
    Views:
    731
    Gilbert Rebhan
    Aug 8, 2008
  5. \A_Michigan_User\

    Various path/path/files.asp all #include this 1 file

    \A_Michigan_User\, Jul 10, 2005, in forum: ASP General
    Replies:
    1
    Views:
    251
    Jeff Cochran
    Jul 10, 2005
Loading...

Share This Page