1. 1)路径问题
  2.  
  3. open一个同py文件同一个目录的文件的时候,用以下:
  4.  
  5. txt = open('/filtered_words.txt','rb')
  6. words = txt.readline()
  7. filtered = []
  8. for word in words:
  9. filtered.append(word)
  10. txt.close()
  11. print(filtered)
  12.  
  13. 会报错
  14. FileNotFoundError: [Errno 2] No such file or directory: '/filtered_words.txt'
  15.  
  16. 这里写错了一个地方,应该写成
  17. txt = open('filtered_words.txt','rb')
  18. 也可利用绝对路径
  19.  
  20. txt = open('E:\\python_project\\test\github\\filtered_words.txt','rb')
  21. 这样也不会报错
  22. 用反斜杠,这样也不会报错
  23.  
  24. txt = open('E:/python_project/test/github/filtered_words.txt','rb')
  25.  
  26. (3)打开文件格式
  27.  
  28. 文档的内容是汉字,用utf-8格式,如果用rb权限open文件,汉字打印出来会变成数字
  29.  
  30. txt = open('filtered_words.txt','rb')
  31. words = txt.readline()
  32. 打印结果是:
  33. [229, 140, 151, 228, 186, 172, 13, 10]
  34.  
  35. r权限open会报错
  36.  
  37. UnicodeDecodeError: 'gbk' codec can't decode byte 0x98 in position 16: illegal multibyte sequence
  38. 在open的时候,加一个编码
  39.  
  40. txt = open('filtered_words.txt','r',encoding='UTF-8')
  41. words = txt.readline()
  42. 打印出来的结果是
  43. ['', '', '\n']
  44.  
  45. 把readline换成read函数,打印结果是
  46.  
  47. ['', '', '\n', '', '', '', '\n', '', '', '']
  48.  
  49. 自行百度了read()、readline()、readlines()的区别,最后代码整理
  50.  
  51. txt = open('filtered_words.txt','rb',encoding='UTF-8')
  52. wor = txt.readlines()
  53. filtered = []
  54. for word in wor:
  55. word = word.strip('\n')
  56. filtered.append(word)
  57. print(word)
  58. txt.close()
  59. print(filtered)
  60. 打印结果是['北京', '程序员', '公务员']
  61.  
  62. 最终代码如下:
  63. class senseWord():
  64. def __init__(self):
  65. self.list = []
  66. file = open('filtered_words.txt','r',encoding='UTF-8')
  67. words = file.readlines()
  68. for word in words:
  69. word = word.strip('\n')
  70. self.list.append(word)
  71.  
  72. def checkwords(self,str):
  73. if str in self.list:
  74. return True
  75. else:
  76. return False
  77.  
  78. if __name__ == '__main__':
  79. sense = senseWord()
  80. str = input('input a string')
  81. if sense.checkwords(str) == True:
  82. print('freedom')
  83. else:

————————————————

python open 函数的一些坑的更多相关文章

  1. 关于python数据序列化的那些坑

    -----世界上本来没那么多坑,python更新到3以后坑就多了 无论哪一门语言开发,都离不了数据储存与解析,除了跨平台性极好的xml和json之外,python要提到的还有自身最常用pickle模块 ...

  2. python基础——函数的参数

    python基础——函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复 ...

  3. Python基础(函数,函数的定义,函数的调用,函数的参数,递归函数)

    1.函数 我们知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = ...

  4. Python(函数的参数)

    函数参数的使用 def foo(x,y): pass foo(1,2) 形参:就是变量名 实参:就是变量值 形参:位置形参,默认参数,*args,命名关键字参数,**kwargs 实参: 按位置传值的 ...

  5. Python进阶-函数默认参数

    Python进阶-函数默认参数 写在前面 如非特别说明,下文均基于Python3 一.默认参数 python为了简化函数的调用,提供了默认参数机制: def pow(x, n = 2): r = 1 ...

  6. python 8 函数

    调用函数 Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以直接从Python的官方网站查看文档: 也可以在交 ...

  7. python的函数

    函数一词起源于数学,但是在编程中的函数和数学中的有很大不同.编程中的函数式组织好的,可重复使用的,用于实现单一功能或相关联功能的代码块. 我们在学习过程中已经使用过一些python内建的函数,如pri ...

  8. python strip()函数 介绍

    python strip()函数 介绍,需要的朋友可以参考一下   函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除 ...

  9. python split()函数

    Python split()函数 函数原型: split([char][, num])默认用空格分割,参数char为分割字符,num为分割次数,即分割成(num+1)个字符串 1.按某一个字符分割. ...

随机推荐

  1. 02_四大组件之Activity

    四大组件之Activity 1. 理论概述 1.1 Activity的理解 Servlet的理解回顾 狭义 Servlet是一个interface,我们的Servlet类都必须是此接口的实现类 广义 ...

  2. day38——线程queue、事件event、协程

    day38 线程queue 多线程抢占资源 只能让其串行--用到互斥锁 线程queue 队列--先进先出(FIFO) import queue q = queue.Queue(3) q.put(1) ...

  3. day32——进程、操作系统

    day32 进程的基础 程序 一堆静态的代码文件 进程 一个正在运行的程序进程.抽象的概念 被谁运行? 由操作系统操控调用交于CPU运行 ​ 操作系统 管理控制协调计算机中硬件与软件的关系 操作系统的 ...

  4. 树莓派raspberrypi系统安装docker以及编译nginx和php镜像

    前言 在树莓派中搭建php环境,按正常流程一般是直接在系统中apt-get install相关的软件,不过如果某天我想无缝迁移到另一个地方,就又得在重新安装一次环境.所以为了方便,就直接在树莓派中使用 ...

  5. 图解javascript的this指向

    图解javascript的this指向 作者: HerryLo 本文永久有效链接: https://github.com/AttemptWeb...... 以下就只有两张图,请放心食用!! #简版th ...

  6. 接口标记为@ResponseBody却不进入ResponseBodyAdvice

    一.背景: 我们的接口为了统一,在ResponseBodyAdvice中对返回值做统一处理,默认添加了errorNo和errorInfo字段返回. 最近同事改接口代码的时候,发现接口返回值是空的.乍一 ...

  7. Python_爬虫小实例

    爬虫小实例 一.问题描述与分析 Q:查询某一只股票,在百度搜索页面的结果的个数以及搜索结果的变化. 分析: 搜索结果个数如下图: 搜索结果的变化:通过观察可以看到,每个一段时间搜索结果的个数是有所变化 ...

  8. 心知天气数据API 产品的高并发实践

    心知天气数据API 产品的高并发实践 心知天气作为国内领先的商业气象服务提供商,天气数据API 产品从公司创立以来就一直扮演着很重要的角色.2009 年API 产品初次上线,历经十年,我们不断用心迭代 ...

  9. IOS - 总结下swift使用GCD 多线程(二)GCD和DispatchQueue

    1.前言  iOS中处理多核并发的技术有两种分别是:`Grand Central Dispatch`(以下简称`GCD`)和`NSOperationQueue`框架.iOS开发的老司机们在程序开发中处 ...

  10. Java High Level REST Client 使用示例

    概述 ES 在 7.0 版本开始将废弃 TransportClient,8.0 版本开始将完全移除 TransportClient,取而代之的是 High Level REST Client,官方文档 ...