python open 函数的一些坑
(1)路径问题
open一个同py文件同一个目录的文件的时候,用以下:
txt = open('/filtered_words.txt','rb')
words = txt.readline()
filtered = []
for word in words:
filtered.append(word)
txt.close()
print(filtered)
会报错
FileNotFoundError: [Errno 2] No such file or directory: '/filtered_words.txt'
这里写错了一个地方,应该写成
txt = open('filtered_words.txt','rb')
也可利用绝对路径
txt = open('E:\\python_project\\test\github\\filtered_words.txt','rb')
这样也不会报错
用反斜杠,这样也不会报错
txt = open('E:/python_project/test/github/filtered_words.txt','rb')
(3)打开文件格式
文档的内容是汉字,用utf-8格式,如果用rb权限open文件,汉字打印出来会变成数字
txt = open('filtered_words.txt','rb')
words = txt.readline()
打印结果是:
[229, 140, 151, 228, 186, 172, 13, 10]
用r权限open会报错
UnicodeDecodeError: 'gbk' codec can't decode byte 0x98 in position 16: illegal multibyte sequence
在open的时候,加一个编码
txt = open('filtered_words.txt','r',encoding='UTF-8')
words = txt.readline()
打印出来的结果是
['北', '京', '\n']
把readline换成read函数,打印结果是
['北', '京', '\n', '程', '序', '员', '\n', '公', '务', '员']
自行百度了read()、readline()、readlines()的区别,最后代码整理
txt = open('filtered_words.txt','rb',encoding='UTF-8')
wor = txt.readlines()
filtered = []
for word in wor:
word = word.strip('\n')
filtered.append(word)
print(word)
txt.close()
print(filtered)
打印结果是['北京', '程序员', '公务员']
最终代码如下:
class senseWord():
def __init__(self):
self.list = []
file = open('filtered_words.txt','r',encoding='UTF-8')
words = file.readlines()
for word in words:
word = word.strip('\n')
self.list.append(word)
def checkwords(self,str):
if str in self.list:
return True
else:
return False
if __name__ == '__main__':
sense = senseWord()
str = input('input a string')
if sense.checkwords(str) == True:
print('freedom')
else:
————————————————
python open 函数的一些坑的更多相关文章
- 关于python数据序列化的那些坑
-----世界上本来没那么多坑,python更新到3以后坑就多了 无论哪一门语言开发,都离不了数据储存与解析,除了跨平台性极好的xml和json之外,python要提到的还有自身最常用pickle模块 ...
- python基础——函数的参数
python基础——函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复 ...
- Python基础(函数,函数的定义,函数的调用,函数的参数,递归函数)
1.函数 我们知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = ...
- Python(函数的参数)
函数参数的使用 def foo(x,y): pass foo(1,2) 形参:就是变量名 实参:就是变量值 形参:位置形参,默认参数,*args,命名关键字参数,**kwargs 实参: 按位置传值的 ...
- Python进阶-函数默认参数
Python进阶-函数默认参数 写在前面 如非特别说明,下文均基于Python3 一.默认参数 python为了简化函数的调用,提供了默认参数机制: def pow(x, n = 2): r = 1 ...
- python 8 函数
调用函数 Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以直接从Python的官方网站查看文档: 也可以在交 ...
- python的函数
函数一词起源于数学,但是在编程中的函数和数学中的有很大不同.编程中的函数式组织好的,可重复使用的,用于实现单一功能或相关联功能的代码块. 我们在学习过程中已经使用过一些python内建的函数,如pri ...
- python strip()函数 介绍
python strip()函数 介绍,需要的朋友可以参考一下 函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm) 删除s字符串中开头.结尾处,位于 rm删除 ...
- python split()函数
Python split()函数 函数原型: split([char][, num])默认用空格分割,参数char为分割字符,num为分割次数,即分割成(num+1)个字符串 1.按某一个字符分割. ...
随机推荐
- linux命令及相关配置
hostname # 查看 hostname vim /etc/hostname # 修改hostname,重启后生效 vim /etc/resolv.conf 写入 nameserver 192.1 ...
- 17 JQuery高级----学习笔记
1. 动画(1) 三种方式显示和隐藏元素 <1> 默认显示和隐藏方式 1. show([speed,[easing],[fn]]) 1. 参数: 1. speed:动画的速度.三个预定义的 ...
- GCC 基础知识
目录 GCC 基础知识 一.GCC编译选项解析 二.多模块.多个文件一起编译 三.静态库与动态库 四.查看帮助文档 GCC 基础知识 一.GCC编译选项解析 1. 常用编译选项 命令格式:gcc [选 ...
- C程序设计语言练习 第二章
2.3 常量 strlen函数:返回s的长度 int strlenn(char s[]) { int i=0; while(s[i] != '\0') ++i; return i; } 2.7 类型转 ...
- C++Primer 5th Chap4 Expressions
左值和右值:左值:用的是对象的身份(内存中的位置),右值:用的是对象的值(内容) 解引用与递增(递减)运算符连用: *ivec++:取ivec当前值并向后移动一个元素,等价于*(ivec++),本来+ ...
- 45 容器(四)——手写LinkedList
概念 LinkedList级双向链表,它的单位是节点,每一个节点都要一个头指针和一个尾指针,称为前驱和后继.第一个节点的头指针指向最后一个节点,最后一个节点的尾指针指向第一个节点,形成环路. 链表增删 ...
- jwt 0.9.0(三)jwt客户端存储状态可行性分析,及Java代码案例
Jwt客户端存储状态可行性分析 1.前端首次访问后台,后台生成token,放在http header的Authorization里(官网推荐,可解决跨域cookie跨域问题),并且Authorizat ...
- Matalb中英双语手册-年少无知翻译版本
更新: 20171207: 这是大学期间参加数模翻译的手册 正文: 愚人节快乐,突然发现自己在博客园的一篇文章.摘取如下: MATLAB 语言是一种工程语言,语法很像 VB 和 C,比 R 语言容易学 ...
- enum的应用及flags特性
enum的作用不做描述,这是C#的基础 设置enum 很简单,本文不做讨论. 但是enum设置值有种特殊方式,如 enum en { a=, b=, c=, d=, e=, …… } 你会发现这个枚举 ...
- django-nginx与uwsgi项目部署
uwsgi是提供动态服务的 nginx反向代理 在项目中创建一个settings.py的副本.我这里重命名为copy_settings.py,将配置文件中的DEBUG=False 修改项目下wsgi. ...