gpt4 book ai didi

python - 如何获取字符之前的所有内容和之后的 x 数量?

转载 作者:行者123 更新时间:2023-12-01 09:15:15 24 4
gpt4 key购买 nike

经过反复试验,似乎无法得到我想要的。

我正在访问 API 来获取一些信息。不幸的是,它是获取该信息的唯一 API,为此,它会下载文件的二进制内容并为其命名:

文件夹\文件名.whatevertest\purpleMonkeyTest.docx

通话中还提供了更多信息,但有一行:

Saved the binary content to: /home/user/python/test\purpleMonkeyTest.docx

某些文件具有 " 或其他特殊字符,因此我无法仅获取文件名并将其作为脚本的一部分删除,因为我不知道要转义什么。

所以我的目标是去掉这条线并得到:

/home/user/python/test\purpleMonkeyTest.docx

然后只得到:

/home/user/python/test\pu

然后:

os.remove "/home/user/python/test\pu"*

我认为通配符应该适用于所有人,除非有更好的方法。保存的所有文件中都包含字符 \ ,因此我已经得到了 \ 之前的所有内容,但我想要在那之后的一两个字符也是如此。

这是我尝试过的:

def fileName(itemID):
import fnmatch
details = itemDetails(itemID, True) # get item id and file details
filepath = matchPattern((details), 'Saved the binary content to: *')
filepath = (filepath).split('\\')[0]
print(filepath)
#os.remove(re.escape(filepath))
return (matchPattern((details), 'Binary component: *'))


def matchPattern(details, pattern):
import fnmatch
return (fnmatch.filter((details), pattern)[0].split(": " ,1)[1])

输出:

/home/user/python/test
purpleMonkeyTest.docx

我确实想要稍后使用的文件名:这实际上是主要目标。不过 API 会自动下载该死的文件。

编辑:

下面的答案适用于获取我想要的字符。操作系统删除并没有删除该文件。

OSError: [Errno 2] No such file or directory: '/home/user/python/test\\Re*'

设法使用 glob 让它工作,我猜 os.remove 不支持 Wilds。

    files = glob.glob((filepath)+"*")
for file in files:
os.remove(file)

感谢您的帮助!!

最佳答案

据我了解您的问题,您希望检索 2 个部分 - 第一个 /\ 之间的所有内容,之后是 2 个字符,然后是 \之后的所有内容:

str = "Saved the binary content to: /home/user/python/test\purpleMonkeyTest.docx"

print (str[str.index("/"):str.rindex("\\") + 3])
print (str[str.rindex("\\") + 1:])

输出

/home/user/python/test\pu

purpleMonkeyTest.docx

关于python - 如何获取字符之前的所有内容和之后的 x 数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51332316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com