【发布时间】:2021-06-22 23:08:41
【问题描述】:
我觉得我有一段非常简单的代码。我有一个格式为'stuff_category.csv' 的文件名。我正在尝试删除'stuff_' 和'.csv',以便留下'category',这是下一段代码所需要的。 'stuff_' 可以是很多不同的东西,所以我不能使用 replace() 函数。现在我有
filename = "stuff_category.csv"
category = filename.lstrip('_').rstrip('.')
但是如果我尝试print(category),甚至print(category.lstrip('_')),它只会返回原始文件名。我错过了什么?
【问题讨论】:
-
如果您想提取基本名称和/或文件扩展名,请使用
os.path.splitext(filename),它会返回 ('stuff_category', '.csv')。 -
@MarkTolonen 我没有“错过”它,我想我只是误解了它的工作原理。当给 lstrip() 一个参数时,我看到的所有内容都会删除该参数之前的所有内容。
-
我发现 'filename.split('.')[0].split('_')[-1]' 产生了我正在寻找的结果。它不像我希望的那样漂亮,但它完成了工作。
-
@user2954167 链接的官方文档给出了它如何工作的清晰示例。
标签: python python-3.x string strip