为什么python内置函数open()的行为类似于b

2024-10-01 02:33:51 发布

您现在位置:Python中文网/ 问答频道 /正文

运行此代码时

def read_text():
    quotes = open("C:\Users\rajawatk\Desktop\movie_quotes.txt")  
    contents_of_file = quotes.read()   
    print(contents_of_file)    
    quotes.close()    
read_text()

以下是错误消息

显示IOError

如果通过指定读取权限运行以下代码

如果我们加上一个r,表示读权限,比如

quotes = open(r"C:\Users\rajawatk\Desktop\movie_quotes.txt")

瞧,我能看懂这部电影的代码_报价.txt文件,这是输出

--休斯顿,我们有麻烦了。(阿波罗13号)

——妈妈常说,生活就像一盒巧克力。你永远不知道你会得到什么。(阿甘正传)

——你不能掌握真相。(几个好人)

——我什么都相信,什么都不相信。(黑暗中的一枪)


Tags: of代码texttxt权限readdefcontents
2条回答

well if we add an r which stands for read permission like

这不是r所代表的。字符串前面的r将其标记为原始字符串,这意味着斜杠不会被解释为转义字符。你知道吗

"C:\Users\rajawatk"被勇敢地描述为“C:\Users”,后跟回车符,后跟“ajawatk”。
r"C:\Users\rajawatk"被大胆地描述为“C:\Users”,后面是斜杠和字母r,后面是“ajawatk”。你知道吗

您可能没有名称中包含回车符的文件,因此前一个版本不适合作为open的参数。你知道吗

您需要指定打开文件的模式,“\”是需要转义的转义序列。对你来说。你知道吗

    quotes = open("C:\\Users\\rajawatk\\Desktop\\movie_quotes.txt", "r") 

但是,像您这样指定完整路径名是一种糟糕的做法。你应该使用操作系统路径给你一个工作目录。如果使用“/”指定目录,则不需要转义,而且它可以在windows和linux上工作。有什么事

    my_dir = os.path.dirname(__file__) 
    file_path = os.path.join(my_dir, '../static/', 'movie_quotes.txt')

它将在姐妹静态目录中查找文件到应用程序运行所在的目录。如果你想把它放在同一个目录里。你知道吗

    my_dir = os.path.dirname(__file__) 
    file_path = os.path.join(my_dir, 'movie_quotes.txt')

相关问题 更多 >