簡體   English   中英

在Python中獲取文件路徑的特定部分

[英]Get specific parts of a file path in Python

我有一個像這樣的路徑字符串

'/path/eds/vs/accescontrol.dat/d=12520/file1.dat'

問題1:如何從路徑中僅獲取accescontrol.dat

問題2:如何從路徑中僅獲取/path/eds/vs/accescontrol.dat

您可以使用正則表達式

import re
ma = re.search('/([^/]+\.dat)/d=', path)
print ma.group(1)
import re

url = '/path/eds/vs/accescontrol.dat/d=12520/file1.dat'
match = re.search('^(.+/([^/]+\.dat))[^$]', url)

print match.group(1)
# Outputs /path/eds/vs/accescontrol.dat
print match.group(2)
# Outputs accescontrol.dat

我對其進行了編輯,以在python2中工作並回答了兩個問題(以上較早的regex回答僅回答了兩個問題中的第一個)

一個簡單的解決方案是使用.split()

Q1:

str = '/path/eds/vs/accescontrol.dat/d=12520/file1.dat'
[x for x in str.split('/') if x[-4:] == '.dat']

得到:

['accescontrol.dat','file1.dat']

類似的技巧將回答第二季度。

對於更高級的文件路徑操作,我建議閱讀有關os.path
https://docs.python.org/2/library/os.path.html#module-os.path

我建議將文件夾/文件的每個級別分成列表中的字符串。

path = '/path/eds/vs/accescontrol.dat/d=12520/file1.dat'.split("/")

這使得path = ['path', 'eds', 'vs', 'accescontrol.dat', 'd=12520', 'file1.dat']

然后從那里可以訪問每個不同的部分。

為什么不這樣

from pathlib import Path
h=r'C:\Users\dj\Pictures\Saved Pictures'
path = Path(h)
print(path.parts)

Path: .
('C:\\', 'Users', 'dj', 'Pictures', 'Saved Pictures')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM