是否有一种简单的跨平台方法可以在Python中为打开文件(文本模式)设置默认编码,因此您不必编写
open(filename, 'r', encoding='utf-8')
每次都可以简单地写
open(filename, 'r')
答案 0 :(得分:1)
您可以创建自己的上下文管理器:
import contextlib
@contextlib.contextmanager
def start_transaction(f ,mode="r", enc="utf-8"):
f = open(f, mode, encoding=enc)
try:
yield f
except:
raise
with start_transaction("in.txt") as f:
for line in f:
print (line)
答案 1 :(得分:1)
from io import open # for python2 compatibility
old_open = open
def open(*args, **kwargs):
encoding = kwargs.pop('encoding', 'utf8')
return old_open(*args, encoding=encoding, **kwargs)
答案 2 :(得分:1)
如果您确定上面提到的名为open
的方法,那么定义这样的函数
import functools
open_file = functools.partial(open, encoding='utf-8')
然后,用这个新方法打开文件,
f = open_file('some_file.txt', 'r')