我需要打开一个有多个绝对文件目录的文件。你知道吗
例如:
层1=C:\User\Files\Menu\菜单.snt
第2层=C:\User\Files\N0-垂直.snt
问题是当我试图打开C:\User\Files\Menu时\菜单.sntpython不喜欢\U或\N
我可以用r"C:\User\Files\Menu\Menu.snt"
打开,但我不能自动执行这个过程。你知道吗
file = open(config.txt, "r").read()
list = []
for line in file.split("\n"):
list.append(open(line.split("=",1)[1]).read())
它打印出来:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 33-34: malformed \N character escape
以下是我的解决方案:
readlines创建一个包含文件中所有行的列表,不需要拆分整个字符串。你知道吗
反斜杠字符
\
被Python解释器用作转义字符,以便提供特殊字符。你知道吗例如,
\n
是一个“新行”字符,就像按键盘上的回车键一样。你知道吗因此,如果您试图读取
newFolder1\newFolder2
之类的内容,解释器将其读取为:在两行文字之间插入新行字符的位置。你知道吗
您已经提到了一种解决方法:使用原始字符串,如
r'my\folder\structure'
,我有点好奇为什么这不能自动化。你知道吗如果可以自动执行,可以尝试在文件路径中将单个反斜杠(
\
)的所有实例替换为双反斜杠(\\
),这样应该可以。你知道吗或者,您可以尝试查看
os
模块,并使用os.path.join()
和os.sep
操作符动态构建路径。你知道吗最后一点:您可以通过替换以下内容来节省一些精力:
list.append(open(line.split("=",1)[1]).read())
由
list = open(line.split("=",1)[1]).readlines()
相关问题 更多 >
编程相关推荐