if __name__ == "__main__": path = "5.文件与IO/1.somefile.txt" # 如果想要读取文件,那open函数是唯一的选择,它有很多模式: # # 只读组, 一般用于配置信息 # open(path, 'rb') # open(path, 'rt') # # # 只写覆盖模式,将指针指向文件头,一般用于文件输出或覆盖旧内容 # open(path, 'wb') # open(path, 'wt') # # # 只写追加模式,将指针从默认的文件头指向文件尾 # open(path, 'ab') # open(path, 'at') # 如果上面的任何一种模式后面有+,那么将会变成读写模式 # 在打开文件时,可以指定文件的编码格式,默认编码模式可以使用sys库进行查询 import sys print(sys.getdefaultencoding()) # 当我们想打开文件的时候,不建议直接使用上面的open函数,因为这样需要每次记住手动关闭打开的文件,像这样 # 当然,二进制写入不需要指定encoding, 正常来说需要指定encoding='utf-8' a = open(path, 'wb') a.write(b'Hello Python File\n') a.close() # 我们可以使用with语句来为文件创建一个上下文环境,在程序离开with的程序段以后,会自动关闭文件 with open(path, 'rb') as f: # 记住,如果是二进制写入,解出来的时候要用utf-8解码一下 print(f.read()) # 可以看到文件已经被关闭了 print(f.closed) # 在UNIX和Windows上,换行符不太相同,UNIX是\n,而windows是\r\n # Python在读取文件时做了内置的转换,统一换行符为\n,如果不需要这种转换,可以设置newline='' open(path, 'rb', newline='') # 如果遇见解码错误,只需要更换encoding就行, 也可以设置错误解决方案字段errors open(path, 'rb', encoding='utf-8', errors='replace')