gpt4 book ai didi

python - 了解 python 中的文件位置 - 意外错误

转载 作者:太空宇宙 更新时间:2023-11-04 10:37:09 25 4
gpt4 key购买 nike

我正在 Windows 7 中学习 python 3.3。我在一个文件夹中有两个文本文件 - lines.txt 和 raven.txt。对于第一个示例,两者都包含相同的文本。

当我尝试使用下面的代码访问 ravens 时,出现错误 -

OSError: [Errno 22] Invalid argument: 'C:\\Python\raven.txt'

我知道可以通过使用像这样的转义字符来修复上述错误 -

C:\\Python\\raven.txt
C:\Python\\raven.txt

为什么这两种方法都有效?奇怪的是,当我访问同一文件夹中的 lines.txt 时,我没有收到任何错误!为什么?

import re

def main():
print('')
fh = open('C:\Python\lines.txt')

for line in fh:
if re.search('(Len|Neverm)ore', line):
print(line, end = '')

if __name__ == '__main__':main()

此外,当我使用下面的行时,我得到一个完全不同的错误 - TypeError: embedded NUL character。为什么?

fh = open('C:\Python\Exercise Files\09 Regexes\raven.txt')

我可以通过在文件路径中的每个\之前使用 \ 来纠正这个问题。

最佳答案

\r 是转义字符,但\l 不是。因此,lines 被解释为 lines 而 raven 被解释为 aven,因为\r 被转义了。

In [1]: len('\l')
Out[1]: 2
In [2]: len('\r')
Out[2]: 1

您应该始终使用 \\ 转义反斜杠。如果您的字符串没有引号,您也可以使用原始字符串:

In [9]: len(r'\r')
Out[9]: 2
In [10]: r'\r'
Out[10]: '\\r'

参见:https://docs.python.org/3/reference/lexical_analysis.html

关于python - 了解 python 中的文件位置 - 意外错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22753841/

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