我已经为此挣扎了几个小时,虽然我找到了一个解决方案,但我不喜欢它。有没有一种内置的方法来解决这个问题:
您在Windows上使用包含路径的变量。您正在尝试使用它打开一个文件,但它包含转义字符,直到运行时才能确定。
如果你使用'shutil‘并且这样做:shutil.copy(file_path,new_file_path)
它工作得很好。
但如果您尝试使用相同的路径:
f = open(file_path,encoding="utf8")
它不起作用,因为路径中的'\a‘被读取为'Bell’=7
我试着做了所有这些,但我唯一能做的就是自定义函数'reconstruct_broken_string‘。
这是打印输出:
有没有一种内置的方法来代替这个函数呢?为什么它能与“shutil”一起工作,而不能与“open”一起工作?
谢谢
发布于 2013-09-08 18:36:39
您的问题在这一行上:
尝试以下其中之一:
甚至:
(是,Windows接受正斜杠作为文件分隔符。)
参考: http://docs.python.org/2/reference/lexical_analysis.html#string-literals
发布于 2013-09-09 03:44:28
这是一个简化的版本,演示了'repr‘是如何不能正常工作的。
这将打印:
如你所见,'repr‘适用于换行符、换行符等,但它不适用于换码钟的'\a’。
这是'repr‘中的bug吗?有没有内置的解决方案来解决这个问题,不需要程序员编写像“reconstruct_broken_string(S)”这样的自定义函数?如果不是,python怎么会这么差劲呢?
发布于 2018-07-18 05:25:56
您可以在字符串前面使用r,以便Python将其作为原始字符串进行处理-
https://stackoverflow.com/questions/18682695
复制相似问题