Splitting path strings into drive, path and file name parts

后端 未结 2 1045
小鲜肉
小鲜肉 2020-12-18 20:00

I am new to python and coding in general. I am trying to read from a text file which has path names on each line. I would like to read the text file line by line and split

相关标签:
2条回答
  • 2020-12-18 20:16

    You need to use os.path.splitdrive first:

    with open('C:/Users/visc/scratch/scratch_child/test.txt') as f:
        for line in f:
            drive, path = os.path.splitdrive(line)
            path, filename = os.path.split(path)
            print('Drive is %s Path is %s and file is %s' % (drive, path, filename))
    

    Notes:

    • the with statement makes sure the file is closed at the end of the block (files also get closed when the garbage collector eats them, but using with is generally good practice
    • you don't need the brackets - os.path.splitdrive(path) returns a tuple, and this will get automatically unpacked
    • file is the name of a class in the standard namespace and you should probably not overwrite it :)
    0 讨论(0)
  • 2020-12-18 20:18

    You can use os.path.splitdrive() to get the drive and then path.split() the remainder.

    ## Open the file with read only permit
    f = open('C:/Users/visc/scratch/scratch_child/test.txt')
    
    for line in f:
        (drive, path) = os.path.splitdrive(line)
        (path, file)  = os.path.split(path)
    
        print line.strip()
        print('Drive is %s Path is %s and file is %s' % (drive, path, file))
    
    0 讨论(0)
提交回复
热议问题