gpt4 book ai didi

python - 包含特殊字符的字符串的绝对路径

转载 作者:行者123 更新时间:2023-12-01 08:42:14 33 4
gpt4 key购买 nike

在我的代码中,我从数据库获取一个路径,该路径可能包含特殊的转义字符,我需要将它们转换为真实的路径名。我在 Windows 上使用 python 3.7。假设这个路径:C:\Files\2c2b2541\00025\test.x

重要:路径不是代码中的固定值,而是从 pyodbc 执行存储过程的输出。当我尝试将其转换为绝对路径时,出现此错误:

ValueError: _getfullpathname: embedded null character in path

我还尝试将 "\" 替换为 "/" 但没有成功。

import os

# path = cursor.execute(query, "some_input").fetchone()[0]
path = 'C:\Files\2c2b2541\00025\test.x'

print(os.path.abspath(path))

最佳答案

从您对其他答案的评论来看,听起来您正在使用的数据库中的数据已经损坏。也就是说,您在那里存储了一个文字空字节,也许还存储了其他虚假字节(例如 \2 可能会变成 \x02)。所以您可能需要两个修复。

首先,您应该修复将值放入数据库的任何代码,这样它就不会再放入虚假数据。您还没有描述数据如何进入数据库,因此我们无法为您提供有关如何执行此操作的太多指导。但大多数编程语言(和数据库库)都有工具来防止转义序列在不需要的字符串中被计算。

一旦您停止添加新的不良数据,您就可以修复数据库中已有的值。编写一个将 \0 空字节替换为 \\0 (或任何适合您的数据库的转义序列)的查询可能应该不会太难。您可能还想查找特殊字符,例如换行符 (\n) 和不可打印字符(例如 \x02)。

如果您根本无法控制数据库,我只会尝试在输出端解决此问题。

关于python - 包含特殊字符的字符串的绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53455660/

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