打开文件作为读/写(如果存在)或不存在的最佳方法是什么,然后创建它并将其作为读/写打开?从我读到的,file = open('myfile.dat', 'rw')应该这样做,对吧?
它不适合我(Python 2.6.2),我想知道它是否是一个版本问题,或者不应该像那样或什么工作.
最重要的是,我只需要解决问题的方法.我很好奇其他的东西,但我需要的只是一个很好的方式来做开场部分.
更新:封闭目录可由用户和组写入,而不是其他(我在Linux系统上...所以权限775换句话说),确切的错误是:
IOError:没有这样的文件或目录.
$ cat bla.py
u = unicode('d…')
s = u.encode('utf-8')
print s
$ python bla.py
File "bla.py", line 1
SyntaxError: Non-ASCII character '\xe2' in file bla.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Run Code Online (Sandbox Code Playgroud)
如何在源代码中声明utf-8字符串?
说我有一个功能:
def NewFunction():
return '£'
Run Code Online (Sandbox Code Playgroud)
我想在它前面打一些带有井号的东西,当我尝试运行这个程序时它会输出错误,显示以下错误信息:
SyntaxError: Non-ASCII character '\xa3' in file 'blah' but no encoding declared;
see http://www.python.org/peps/pep-0263.html for details
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何在返回功能中加入英镑符号?我基本上是在课堂上使用它,它'__str__'包含在包含英镑符号的部分内.
Python将以下内容识别为定义文件编码的指令:
# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)
我确实在(-*- var: value -*-)之前看过这种指令.它从何而来?什么是完整的规范,例如,值可以包括空格,特殊符号,换行符,甚至-*-本身?
我的程序将编写纯文本文件,我想使用这种格式在其中包含一些元数据.
我试图解析包含一些非ASCII cheracter的xml,
代码如下所示
from lxml import etree
from lxml import objectify
content = u'<?xml version="1.0" encoding="utf-8"?><div>Order date : 05/08/2013 12:24:28</div>'
mail.replace('\xa0',' ')
xml = etree.fromstring(mail)
Run Code Online (Sandbox Code Playgroud)
但它显示我在'content = ...'这一行上的错误
syntaxError: Non-ASCII character '\xc2' in file /home/projects/ztest/responce.py on line 3,
but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Run Code Online (Sandbox Code Playgroud)
在终端它正在工作,但在eclipse IDE上运行它给了我一个错误.
不知道如何克服..
我在Python 2中工作,我有一个包含emojis以及其他unicode字符的字符串.我需要将其转换为列表,其中列表中的每个条目都是单个字符/表情符号.
x = u'xyz'
char_list = [c for c in x]
Run Code Online (Sandbox Code Playgroud)
所需的输出是:
['', '', 'x', 'y', 'z', '', '']
Run Code Online (Sandbox Code Playgroud)
实际输出是:
[u'\ud83d', u'\ude18', u'\ud83d', u'\ude18', u'x', u'y', u'z', u'\ud83d', u'\ude0a', u'\ud83d', u'\ude0a']
Run Code Online (Sandbox Code Playgroud)
如何实现所需的输出?
我刚刚使用在Python 3下运行Django App到使用Python 2.7.我现在得到这个错误:
SyntaxError: Non-ASCII character '\xe2' in file /Users/user/Documents/workspace/testpro/testpro/apps/common/models/vendor.py on line 9, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Run Code Online (Sandbox Code Playgroud)
它所指的代码只是一个评论:
class Vendor(BaseModel):
"""
A company manages owns one of more stores.?
"""
name = models.CharField(max_length=255)
def __unicode__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
为什么?
这有效:
class Vendor(BaseModel):
"""
"""
name = models.CharField(max_length=255)
def __unicode__(self):
return self.name
Run Code Online (Sandbox Code Playgroud) 之间有区别吗
(a)用shebang定义编码
#!/usr/bin/env python -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)
(b)在单独的行上定义 shebang 和编码?
#!/usr/bin/env python
#-*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud) 可能重复:
Ruby - UTF-8文件编码
我一直在使用UTF-8,并希望帮助ruby解释器读取我的文件.因此我把# encoding=utf-8ruby代码的开头放在这样的:
#!/usr/bin/env ruby
# encoding=utf-8
Run Code Online (Sandbox Code Playgroud)
但偶尔,我会看到其他变体:
bundle gem NAMEinsert # -*- encoding: utf-8 -*-(进入NAME.gemspec).gem magic_encoding也使用这一行.
推荐的方式是什么?
# encoding = utf-8# encoding: utf-8# -*- encoding: utf-8 -*-在开发/本地计算机上运行的Python代码,但在安装到Appengine后失败:
我文件中的第一行:
# -*- coding: utf8 -*-O
Run Code Online (Sandbox Code Playgroud)
代码后面的行:
s1 = u'Ismer?seid'
logging.info (s1)
s2 = s1 + u':' + s1
logging.info (s2)
logging.info ("%s,%s", s1, s2)
Run Code Online (Sandbox Code Playgroud)
在Dev(localhost)中:
INFO 2012-12-18 04:01:17,926 AppRun.py:662] Ismer?seid,
INFO 2012-12-18 04:01:17,926 AppRun.py:664] Ismer?seid:Ismer?seid
INFO 2012-12-18 04:01:17,926 AppRun.py:665] Ismer?seid,Ismer?seid. Ó,
Run Code Online (Sandbox Code Playgroud)
安装/运行后在App Engine上:
I 2012-12-21 06:52:07.730
É, Á, Ö, Ü. Ó,
E 2012-12-21 06:52:07.736
Traceback (most recent call last):
File "....", line 672, in xxxx
s3 = s1 + u':' + s1
UnicodeDecodeError: 'ascii' codec can't decode byte …Run Code Online (Sandbox Code Playgroud) 我正在尝试开始学习Python,但是从第一步开始我感到困惑.我开始使用Hello, World,但是当我尝试运行脚本时,我得到:
语法错误:非UTF-8代码以第5行
\xe9文件中的' ' 开头C:\Documents and Settings\Home\workspace\Yassine frist stared\src\firstModule.py但未声明编码; 有关详细信息,请参阅http://python.org/dev/peps/pep-0263/.
以下代码在我的 Windows 机器上使用 Python3 运行良好,并打印字符“é”:
data = b"\xc3\xa9"
print(data.decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
但是,在基于 Ubuntu 的 docker 容器上运行相同的结果:
UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
是否需要安装任何东西才能启用 utf-8 解码?
最近,我一直在阅读Python源代码编码,尤其是PEP 263和PEP 3120.
我有以下代码:
# coding:utf-8
s = 'abc?´ƒ©'
ƒ = 'My name is'
ß = '?ß?ˆ†ˆ? ßå®åø©ˆ'
print('s =', s)
print('ƒ =', ƒ, 'ß =', ß)
Run Code Online (Sandbox Code Playgroud)
此代码适用于Python3,但SyntaxError在Python2.7中生成.
我知道这可能与源代码编码无关.
所以,我想知道是否有办法在Python2中支持Unicode变量名.
总而言之,我也很难弄清楚PEP究竟要解决的实际问题以及我如何(以及在何处)利用所提出的解决方案.我已经阅读了相同的讨论,但他们没有提出我的问题的答案,而是对正确语法的解释:
python ×11
encoding ×6
unicode ×4
utf-8 ×3
linux ×2
python-2.7 ×2
django ×1
emacs ×1
emoji ×1
env ×1
file ×1
file-io ×1
lxml ×1
python-2.x ×1
python-3.5 ×1
python-3.x ×1
ruby ×1
shebang ×1
text ×1
windows ×1
xml-parsing ×1