首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成Wordlist、Python脚本

生成Wordlist、Python脚本
EN

Stack Overflow用户
提问于 2014-03-10 18:36:41
回答 1查看 157关注 0票数 0

这是我第一篇关于Stack溢出的文章,我对python很陌生(这不是我的代码,我在一本编程杂志上找到的)。

代码语言:javascript
复制
#!/usr/bin/env python
#letter_changer.py by dr@g
import sys
def replace_chars(line,dic_words):
 for i,j in dic_words.iteritems():
  line=line.replace(i,j)
 return line
letters={‘8’:’th’,’3’:’ks’,’4’:’ps’}
f=sys.argv[1]
filename=open(f,’r’)
for line in filename:
 new_line=replace_chars(line,letters)
 print new_line,
filename.close()

这是一个用来丰富单词列表的脚本,它应该读取一个字符串,将一个字母转换为另一个字符串(第8行),并为该字符串创建一个新条目。我的字典的每一行都包含一个条目。运行该脚本后,我得到以下错误:

SyntaxError:第8行文件letter_changer.py中的非ASCII字符‘\XE2’,但未声明编码;有关详细信息,请参阅http://www.python.org/peps/pep-0263.html

在互联网上进行了一些研究之后,我意识到我应该在脚本的开头使用这段代码:

代码语言:javascript
复制
# vim: set fileencoding=utf-8 :

(但我不明白为什么,因为我只使用英文字符)

修正后,我在第8行出现了问题:letters={‘8’:‘th’,‘3’:‘ks’,‘4’:‘ps’}

文件“letter_changer.py”,第8行letters=letters.replace(‘8’:‘th’,‘3’:‘ks’,‘4’:‘ps’)^ SyntaxError:无效语法

解决方案可能很简单,但我在python中是新手,任何答复都是有用的,甚至一些提示和一般指导方针。

提前谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-10 18:43:34

这不是英语字符的问题,而是ASCII和引文字符的问题。文件本身在第8行和第10行中包含非ASCII引号字符,但是因为它们不是ASCII引号字符,所以即使告诉Python文件是UTF-8,它仍然不会将这些字符识别为字符串。比较:

“聪明”引语:

代码语言:javascript
复制
letters={‘8’:’th’,’3’:’ks’,’4’:’ps’}
f=sys.argv[1]
filename=open(f,’r’)

ASCII引用:

代码语言:javascript
复制
letters={'8':'th','3':'ks','4':'ps'}
f=sys.argv[1]
filename=open(f,'r')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22308497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档