python保存文件utf8
‘壹’ python print中文乱码问题 win10 Python2
python2字符串编码的问题,如果要输出中文可以使用u前缀,这样就可以直接使用了
a=u'你好'
printa
这样就可以了
‘贰’ Python程序保存后文件夹里是空的
defuplow():
withopen(r'C:UsersAdministratorDesktop1.txt','r',encoding='utf-8')astxt1:
withopen(r'C:UsersAdministratorDesktop2.txt','w',encoding='utf-8')astxt:
data=txt1.read()
foriindata:
ifi.islower():
i=i.upper()
else:
i=i.lower()
txt.write(i)
uplow()
顺手写了下,既然是逐个替换的话,直接read(),不要多一个readline()
‘叁’ 如何设置python的编码格式为utf-8
重装了系统(ubuntu 14.04)原来正常可用的OpenERP项目在切换到开发者模式的时候报错:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
而在服务器上的项目正常可用,其原因是由于python的默认编码设置为ascii,可以用以下命令查看:
import sys
sys.getdefaultencoding()
解决方案有两种:
1. 在项目启动文件中添加设置字符为utf8:
import sys
reload(sys)
sys.setdefaultencoding('utf8')
2. 在python的lib文件夹下的sitecustomize.py文件中添加代码:(我的文件位于/usr/lib/python2.7)
import sys
reload(sys)
sys.setdefaultencoding('utf8')
try:
import apport_python_hook
except ImportError:
pass
else:
apport_python_hook.install()
relaod(sys)一句是必须的
‘肆’ python写文件中文乱码
解决思路:
修改excel 打开csv 文件的编码(可能会影响其它文件的打开,不作为首选方式)
修改python 打开文件的编码 utf-8 -> utf-8-sig
修改前的编码
f=open(filename,'w',encoding='utf-8')
修改后的编码
f=open(filename,'w',encoding='utf-8-sig')
‘伍’ sublime 怎么修改python 存储为utf-8
1. 汉化 sublime
[
搜索liblime汉化,下载解压得到default文件夹
将default文件夹放入 sublime/Data/Packages 中,汉化完成
]
2. 安装 Package Control 插件
[
方法1. 查看——显示控制台——粘贴代码(网上搜到代码)
方法2. sublime/Data/Packages文件夹中放入另一个文件夹(网络上可以搜索到文件夹)
]
3. 安装ConvertToUTF8,使得python代码中的中文能够正确显示
[
保证网络畅通
按下“ ctrl + shift + P ”(或者菜单栏:工具——命令面板)调出命令面板
命令面板中输入“install”,按下“Enter”
在新出现的窗口中输入ConvertToUTF8 ,按下“Enter”即可完成安装
]
4. 安装SublimeREPL
[
保证网络畅通
按下“ ctrl + shift + P ”(或者菜单栏:工具——命令面板)调出命令面板
命令面板中输入“install”,按下“Enter”
在新出现的窗口中输入SublimeREPL ,按下“Enter”即可完成安装
]
5. 配置SublimeREPL(这一步骤可省略,看文末介绍)
[
打开文件sublime/Data/packages/SublimeREPL/config/python/Main.sublime-menu文件
查找到
{"command": "repl_open",
"caption": "Python",
"id": "repl_python",
"mnemonic": "p",
"args": {
"type": "subprocess",
"encoding": "utf8",
"cmd": ["python", "-i", "-u"],
"cwd": "$file_path",
"syntax": "Packages/Python/Python.tmLanguage",
"external_id": "python",
"extend_env": {"PYTHONIOENCODING": "utf-8"}
}
},
把它复制并列粘贴在原位置下面,稍稍修改刚刚粘贴的部分
{"command": "repl_open",
"caption": "Python",
"id": "repl_python",
"mnemonic": "p",
"args": {
"type": "subprocess",
"encoding": "utf8",
"cmd": ["python", "-i", "-u"],
"cwd": "$file_path",
"syntax": "Packages/Python/Python.tmLanguage",
"external_id": "python",
"extend_env": {"PYTHONIOENCODING": "utf-8"}
}
},
{"command": "repl_open",
"caption": "Python - my", (我取名python-my,这里你自己取一个名字,显示在菜单栏中)
"id": "repl_myf5", (我取id为 repl_myf5, 你自己取一个独一无二的)
"mnemonic": "p",
"args": {
"type": "subprocess",
"encoding": "utf8",
"cmd": ["python", "-i", "-u","$file_basename"], (这里修改添加了一点字段)
"cwd": "$file_path",
"syntax": "Packages/Python/Python.tmLanguage",
"external_id": "python",
"extend_env": {"PYTHONIOENCODING": "utf-8"}
}
},
保存,至此在菜单栏 工具——SublimeREPL——python中就出现了python-my选项
]
6. 添加源文档中的字段
[
打开一个python源文档,在文档头添加字段 # -*- coding: utf-8 -*- (没有这个字段编译会出错,python编码和sublime不同)
选择工具——SublimeREPL——python——python-my(我取的名字), 即可编译
]
7. 设置快捷键
[
用工具菜单调用编译太慢,可以设置快捷键
选择菜单preferences——键绑定-用户,在打开的文件中输入
[ { "keys": ["f5"], (f5是我设置的快捷键,可以改,当然还是推荐f5)
"caption": "SublimeREPL: Python",
"command": "run_existing_window_command","args":
{
"id": "repl_myf5", (repl_myf5是我取的id,你填入你的id)
"file":"config/python/Main.sublime-menu"
}
}
]
上面内容包括方括号,保存后,即可使用设定的快捷键
]
8. 要注意的是,调试程序,使用快捷键编译时候,首先 ctrl + s 保存当前文件,编译的才是最新修改的源文件
(要是谁会在快捷键里面添加 先保存 再编译 功能请告诉我一下,我不太会配置快捷键,thankyou,发送邮件[email protected])
建议 查看——布局——列2 ,2列布局看起来更方便,多编译几次右边会出现很多编译窗口,关闭编译窗口 使用ctrl + w 可以快速关闭
9
文末的话,后来发现,不改变SublimeREPL的配置文件,直接新建快捷方式id改成repl_python_run 即可
第一种方法使用起来和python默认IDLE一样,第二种方法像cmd窗口
‘陆’ python 中文名的文件的保存
windows文件名的编码是cp936的,你在使用中文文件名的时候转下码就行了。
比如你python文件编码是utf8
# -*- coding: utf-8 -*-
he='开心.mp3'
f=open(he.decode('utf-8').encode('cp936'),'w')
f.close()
就可以了~~~
‘柒’ python问题,我运用python做中文词频分析的时候总是显示UnicodeDecodeError: 'utf-8'问题
出现原因:文件不是 UTF8 编码的,而系统默认采用 UTF8 解码。
解决方法是改为对应的解码方式。
解决办法:
“文件–》另存为”,可以看到文件的默认编码格式为ANSI,改为编码格式UTF8,保存