Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[Centos7]open读取文件报错:TypeError

[Centos7]open读取文件报错:TypeError

作者头像
贰叁壹小窝
发布于 2020-07-21 18:04:22
发布于 2020-07-21 18:04:22
1.1K00
代码可运行
举报
文章被收录于专栏:贰叁壹运维贰叁壹运维
运行总次数:0
代码可运行

本文编写于 205 天前,最后修改于 205 天前,其中某些信息可能已经过时。

在写对比文件差异的脚本时,运行脚本报错:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TypeError: a bytes-like object is required, not ‘str’

处理方法如下: 1.使用codecs模块 2.原代码为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fileHandle = open(filename, 'rb')
#此写法用于python2.x版本,因为我的版本为python3.6,所以需要做以下更改

3.更改后的代码为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import codecs
fileHandle = codecs.open(filename, 'rb', 'utf-8')
#将读取的文件类型进行转换

4.脚本完整代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/python3
#-*-coding:UTF-8-*-
import sys
import codecs
import difflib
try:
        textfile1 = sys.argv[1]
        textfile2 = sys.argv[2]
except Exception as e:
    print('Error:',str(e))
    sys.exit()
def readfile(filename): #文件读取分隔函数
        try:
#               fileHandle = open(filename, 'rb')       此方法为python2的写法
                fileHandle = codecs.open(filename, 'rb', 'utf-8')       #python3中使用codecs进行类型转 
换,否则报错TypeError: a bytes-like object is required, not 'str'
                text = fileHandle.read().splitlines()
                fileHandle.close()
                return text
        except IOError as error:
                print('Read file Error:',str(error))
                sys.exit()
#print(readfile(textfile1))
text1_lines = readfile(textfile1)       #调用readfile函数获取分隔后的字符串
text2_lines = readfile(textfile2)
d = difflib.HtmlDiff()  #创建HtmlDiff()类对象
print(d.make_file(text1_lines,text2_lines))     #通过make_file方法输出HTML格式的对比结果
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-12-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何在Ubuntu 14.04上为Apache设置mod_rewrite
在本教程中,我们将激活并学习如何使用Apache2 mod_rewrite模块管理URL重写。这个工具允许我们以更干净的方式重写URL,将人类可读的路径转换为代码友好的查询字符串。
无敌小笼包
2018/10/19
2.7K0
如何在Debian 9上使用mod_rewrite为Apache重写URL
Apache的mod_rewrite模块允许您以更干净的方式重写URL,将人类可读的路径转换为代码友好的查询字符串。它还允许您根据条件重写URL。
楠宝宝
2018/11/15
5.5K0
.htaccess伪静态规则
Apache的 mod_rewrite是比较强大的,在进行网站建设时,可以通过这个模块来实现伪静态。
阿珏
2018/08/02
5.7K0
Apache 的 ReWrite 的应用
Apache的mod_rewrite是提供了强大URL操作的杀手级 的模块,可以实现几乎所有你梦想的URL操作类型,其代价是你必须接受其复杂性,因为mod_rewrite的主要障碍就是初学者不容易理解和运用,即使 是Apache专家有时也会发掘出mod_rewrite的新用途。 换句话说:对mod_rewrite,或者是打退堂鼓永不再用,或者是喜欢它并一生受用。 ReWrite可以应用在以下方面或者解决以下问题: URL的规划 规范的URL 说明: 在有些网站服务器上,一个资源会拥有多个URL,在实
wangxl
2018/03/07
1.5K0
Apache之Rewrite和RewriteRule规则梳理以及http强转https的配置总结(完整版)
一. 简单实例介绍 一般来说,apache配置好http和https后,如果想要做http强转到https,需要设置url重定向规则,大致需要下面几个步骤即可完成配置:
洗尽了浮华
2018/09/28
32.3K0
Apache 中RewriteRule 规则参数[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。[size=medium] Apache 中RewriteRule 规则参数 Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试,比如服务器变量、环境变量、HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。
全栈程序员站长
2022/08/28
3.6K0
php 实现url rewrite 伪静态
mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面。下面我详细说说它的使用方法!对初学者很有用的哦!
lilugirl
2019/05/26
2.8K0
Apache的URL地址重写(RewriteCond与RewriteRule)
大家好,又见面了,我是你们的朋友全栈君。Apache的URL地址重写 http://hi.baidu.com/sonan/blog/item/c408963d89468208bba16716.html 第一种方法:Apache环境中如果要将URL地址重写,正则表达式是最基本的要求,但对于一般的URL地址来说,基本的匹配就能实现我们大部分要求,因此除非 是非常特殊的URL地址,但这不是我要讨论的范围,简单几招学会Apache中URL地址重写,通过实例展示,轻松学会URL地址重写: URL实例
全栈程序员站长
2022/06/30
2.6K0
如何在Ubuntu 18.04上使用mod_rewrite for Apache重写URL
Apache的mod_rewrite模块允许您以更干净的方式重写URL,将人类可读的路径转换为代码友好的查询字符串。它还允许您根据条件重写URL。
水门
2018/10/19
4.8K0
Apache mod_rewrite实现HTTP和HTTPS重定向跳转
当你的站点使用了HTTPS之后,你可能会想把所有的HTTP请求(即端口80的请求),全部都重定向至HTTPS(即端口443)。这时候你可以用以下的方式来做到:(Apache mod_rewrite)
用户8965210
2021/10/14
1.4K0
如何在Debian 8上使用mod_rewrite为Apache重写URL
在本教程中,我们将激活并学习如何使用Apache 2的mod_rewrite块管理URL重写。该模块允许我们以更干净利落的方式重写URL,将人们可读的路径转换为代码友好的查询字符串或根据其他条件重定向URL。
陈树丶
2018/08/09
4.9K0
Apache重载规则详解[一]
1、先写个简单的重载规则(具体环境配置参考 http://www.0377joyous.com/archives/109.html) 2、在网站目录(我在网站根目录下做测试)下建立htaccess文
苦咖啡
2018/05/07
1.2K0
Apache中 RewriteCond 规则参数介绍[通俗易懂]
Apache中 RewriteCond语句对于我来说一直是个难点,多次试图去把它搞明白,都没有结果,这次我终于算大概知道它的意思了。 RewriteCond就像我们程序中的if语句一样,表示
全栈程序员站长
2022/06/29
4.9K0
【译】使用Apache的mod重写来保护你的C2 Empire
背景 伴随着维基红色团队基础架构(Red Team Infrastructure Wiki)的发布,今年圣诞节早早来临。 它在Jeff Dimmock和Steve Borosh的惊人的红色团队基础架构介绍之后正式亮相。 在设计和保护基础架构时,我甚至无法理解维基有多高的价值,以下是我的观点: 维基强调的一个关键设计因素是在基础架构设置中使用重定向器(redirectors)。重定向(redirection)几乎可以应用于基础架构的所有功能,包括服务负载、避免IR和在其他服务器中保护你的C2服务器。损失一台
安恒网络空间安全讲武堂
2018/02/06
1.7K0
【译】使用Apache的mod重写来保护你的C2 Empire
http协议之referer防盗链
以百度贴吧为例,在百度帖吧我们随便获取一张图片的url 链接如下: http://tiebapic.baidu.com/forum/w%3D580%3B/sign=dd259ee0be773912c4268569c8228718/63d0f703918fa0ec23dcbc50319759ee3d6ddb50.jpg
切图仔
2022/09/14
1K0
http协议之referer防盗链
Apache中 RewriteRule 规则参数介绍
大家好,又见面了,我是你们的朋友全栈君。Apache中 RewriteRule 规则参数介绍
全栈程序员站长
2022/08/27
12.4K0
PHP扩展模块、Apache之rewrite模块
说明: 在配置文件中加入“extension=redis.so”即可!该文件中“;”表示注释符号,同“#”。
阿dai学长
2019/04/03
2.4K0
RewriteCond指令格式
语法: RewriteCond TestString CondPattern [flags]
全栈程序员站长
2022/07/01
2.6K0
Apache rewrite的重写相关的参数说明
Apache的rewrite的重写非常常用,现总结了一下.Apache mod_rewrite规则重写的标志一览
习惯说一说
2019/07/16
1.2K0
Nginx/Apache之伪静态设置 - 运维小结
一、什么是伪静态 伪静态即是网站本身是动态网页如.php、.asp、.aspx等格式动态网页有时这类动态网页还跟"?"加参数来读取数据库内不同资料,伪静态就是做url重写操作(即rewrite)。很典
洗尽了浮华
2019/05/25
13.1K0
相关推荐
如何在Ubuntu 14.04上为Apache设置mod_rewrite
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验