有一个简单和跨平台的方式来设置默认编码在Python打开文件(文本模式),这样你就不必每次都写Python简单的方法来设置在文本模式下打开文件的默认编码?
open(filename, 'r', encoding='utf-8')
,并可以简单的写
open(filename, 'r')
?
有一个简单和跨平台的方式来设置默认编码在Python打开文件(文本模式),这样你就不必每次都写Python简单的方法来设置在文本模式下打开文件的默认编码?
open(filename, 'r', encoding='utf-8')
,并可以简单的写
open(filename, 'r')
?
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)
你可以创建自己的contextmanager:
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)
我不会说这个简单的方法,但它是一个有趣的方法,tnx – Bob 2014-10-08 23:58:30
如果确定有一个名为open
你上面提到的方法,然后定义这样的功能
import functools
open_file = functools.partial(open, encoding='utf-8')
然后,开用这种新方法文件,
f = open_file('some_file.txt', 'r')
定义你自己的'open'功能?例如'def myopen(* args):return open(* args,encoding ='utf-8')' – isedev 2014-09-29 23:36:18