当前位置:优草派 > 问答 > Python问答

python查找文件路径

标签: Python  Python开发  Python  作者: chanel

回答:

在Python程序中,查找文件路径是一个常见的操作。无论是读取文件还是写入文件,都需要知道文件的路径。在本文中,我们将从多个角度分析Python查找文件路径的方法。

一、使用os模块

os模块是Python标准库中的一个模块,它提供了许多与操作系统相关的函数和变量。其中,os.path模块提供了一些用于处理文件路径的函数。

1. os.path.abspath(path)

该函数返回path的绝对路径。

例如:

```

import os

path = 'file.txt'

print(os.path.abspath(path))

```

输出结果为:

```

C:\Users\Username\Documents\file.txt

```

2. os.path.basename(path)

该函数返回path的基本名称。也就是说,它返回path中的最后一个路径分隔符后的部分。

例如:

```

import os

path = 'C:\\Users\\Username\\Documents\\file.txt'

print(os.path.basename(path))

```

输出结果为:

```

file.txt

```

3. os.path.dirname(path)

该函数返回path的目录名称。也就是说,它返回path中的最后一个路径分隔符前的部分。

例如:

```

import os

path = 'C:\\Users\\Username\\Documents\\file.txt'

print(os.path.dirname(path))

```

输出结果为:

```

C:\Users\Username\Documents

```

4. os.path.join(path1, path2, ...)

该函数将多个路径组合成一个路径。它会根据操作系统的不同,在路径中自动添加路径分隔符。

例如:

```

import os

path1 = 'C:\\Users\\Username\\Documents'

path2 = 'file.txt'

print(os.path.join(path1, path2))

```

输出结果为:

```

C:\Users\Username\Documents\file.txt

```

5. os.path.split(path)

该函数将path分割成目录和文件名两个部分,返回一个元组。

例如:

```

import os

path = 'C:\\Users\\Username\\Documents\\file.txt'

print(os.path.split(path))

```

输出结果为:

```

('C:\\Users\\Username\\Documents', 'file.txt')

```

6. os.path.splitext(path)

该函数将path分割成文件名和扩展名两个部分,返回一个元组。

例如:

```

import os

path = 'C:\\Users\\Username\\Documents\\file.txt'

print(os.path.splitext(path))

```

输出结果为:

```

('C:\\Users\\Username\\Documents\\file', '.txt')

```

二、使用pathlib模块

Python 3.4引入了pathlib模块,它提供了一种更面向对象的方式来处理文件路径。

1. pathlib.Path(path)

该类用于表示文件路径。它的构造函数可以接受一个字符串参数,表示文件路径。

例如:

```

from pathlib import Path

path = Path('C:/Users/Username/Documents/file.txt')

```

2. path.absolute()

该方法返回path的绝对路径。

例如:

```

from pathlib import Path

path = Path('file.txt')

print(path.absolute())

```

输出结果为:

```

C:\Users\Username\Documents\file.txt

```

3. path.name

该属性返回path的基本名称。

例如:

```

from pathlib import Path

path = Path('C:/Users/Username/Documents/file.txt')

print(path.name)

```

输出结果为:

```

file.txt

```

4. path.parent

该属性返回path的目录名称。

例如:

```

from pathlib import Path

path = Path('C:/Users/Username/Documents/file.txt')

print(path.parent)

```

输出结果为:

```

C:\Users\Username\Documents

```

5. path.joinpath(*paths)

该方法将多个路径组合成一个路径。

例如:

```

from pathlib import Path

path1 = Path('C:/Users/Username/Documents')

path2 = 'file.txt'

print(path1.joinpath(path2))

```

输出结果为:

```

C:\Users\Username\Documents\file.txt

```

6. path.parts

该属性返回path的各个部分,以元组的形式表示。

例如:

```

from pathlib import Path

path = Path('C:/Users/Username/Documents/file.txt')

print(path.parts)

```

输出结果为:

```

('C:\\', 'Users', 'Username', 'Documents', 'file.txt')

```

三、使用glob模块

glob模块提供了一种模式匹配文件路径的方法。

1. glob.glob(pathname)

该函数返回与pathname匹配的所有文件路径,以列表的形式表示。

例如:

```

import glob

files = glob.glob('C:/Users/Username/Documents/*.txt')

print(files)

```

输出结果为:

```

['C:/Users/Username/Documents/file1.txt', 'C:/Users/Username/Documents/file2.txt']

```

四、使用os.walk函数

os.walk函数可以遍历某个目录下的所有文件和子目录。

1. os.walk(top, topdown=True, onerror=None, followlinks=False)

该函数返回一个生成器,它可以遍历top目录下的所有文件和子目录。top是要遍历的目录的路径。

例如:

```

import os

for root, dirs, files in os.walk('C:/Users/Username/Documents'):

for file in files:

print(os.path.join(root, file))

```

输出结果为:

```

C:/Users/Username/Documents/file1.txt

C:/Users/Username/Documents/file2.txt

```

TOP 10
  • 周排行
  • 月排行