从文件中获取文件夹路径

2024-05-19 14:00:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用熊猫工作的文件路径列表,我需要提取文件夹路径。你知道吗

所以从:

/volume1/SYN/FOLDER1/FILE.TXT
/volume1/SYN/FOLDER2/SUBFOLDER/FILE.PDF

我需要获取文件夹路径:

/volume1/SYN/FOLDER1/
/volume1/SYN/FOLDER2/SUBFOLDER/

我找到了一种获取文件名而不是文件夹路径的方法

data['index'] = data['File'].str.split('/').str[-1]

有什么想法吗?你知道吗


Tags: 文件路径txt文件夹列表datapdf文件名
2条回答

使用^{}

data['index'] = data['File'].str.rsplit('/', n=1).str[0] + '/'

如果没有缺失值和性能很重要:

data['index'] = [x.rsplit('/', 1)[0] + '/' for x in data['File']]


print (data)
                                      File                            index
0            /volume1/SYN/FOLDER1/FILE.TXT            /volume1/SYN/FOLDER1/
1  /volume1/SYN/FOLDER2/SUBFOLDER/FILE.PDF  /volume1/SYN/FOLDER2/SUBFOLDER/

您可以使用^{}并通过列表理解或带有自定义函数的apply提取第一次拆分。你知道吗

from os.path import splitext

df = pd.DataFrame({'filepaths': [r'/volume1/SYN/FOLDER1/FILE.TXT',
                                 r'/volume1/SYN/FOLDER2/SUBFOLDER/FILE.PDF']})

# list comprehension, more efficient
df['folder'] = [splitext(x)[0] for x in df['filepaths']]

# apply + lambda implicit loop
df['folder'] = df['filepaths'].apply(lambda x: splitext(x)[0])

print(df)

                                 filepaths  \
0            /volume1/SYN/FOLDER1/FILE.TXT   
1  /volume1/SYN/FOLDER2/SUBFOLDER/FILE.PDF   

                                folder  
0            /volume1/SYN/FOLDER1/FILE  
1  /volume1/SYN/FOLDER2/SUBFOLDER/FILE  

相关问题 更多 >