python换行输入数据_python 对比两个文件内容或字符串内容时的换行符/交作业检测小程序...

python在对比两个文件内容或字符串时,要注意文件是否有换行符,否则结果会一直提示错误。

#python 3.x

#python 对比两个文件内容

with open('test1.txt') as file1,\

open('test2.txt') as file2:

fa = file1.readlines()

fb = file2.readlines()

for m in fa:

m = m.rstrip('\n')

for n in fb:

if m not in n:

print(m +'not in '+n )

flag = 1

else:

print(m +'YES')

flag = -1

if flag==1:

print('数据存在差异')

此外,判断一个字符串是否包含子串的其他几种方法有:

1)使用 in 方法

2)使用string模块的find()/rfind()方法

3)使用string模块的index()/rindex()方法

具体查看:http://www.jb51.net/article/62726.htm

这就让我纳闷了很久了,我搞了一晚上了,现在都1点半了,可是每个文件进行对比的话,是很麻烦的,因为in 和 not in,都不能准确算出我需要的内容,而且find的方式其实和in没什么区别。最后附上我自己的代码

#encoding:gbk

bj = ['项雨泽','黄皓翔','廖羽良','袁雨辰','杨宇轩','廖思凯','简博成','伍依铭','钟佳婷','陈欣怡','伍宇乐','周佳慧','熊子嫣','黄宇泉','刘思琦','刘晨宇','陈可佳','牛艺涵','伍妙思','钟艺轩','彭紫夏','黄育宸','刘子渊','肖哲浩','林弈名','严恺昕','刘子文','郭雨辰','钟瑞秋','刘俊佑','林颖希','黄佳敏','梁镇南','闻怡航','林涵羽']

with open('交作业成员.txt',encoding="utf-8") as file2:

cy = file2.readlines()

for c in cy:

# print(c +'交了作业' )

# else:

# pass

#

#bj.remove(b)

#print(bj)

for b in bj:

for c in cy:

if c.find(b) == -1:

pass

print(b +'没交作业')

else:

pass

#print(b +'交了作业')

一言难尽,明天继续,太久没摸了。

还有一段find的

`方法1:使用 in 方法实现contains的功能:

site = '//www.jb51.net/'

if "jb51" in site:

print('site contains jb51')

输出结果:site contains jb51

方法2:使用find函数实现contains的功能

s = "This be a string"

if s.find("is") == -1:

print "No 'is' here!"

else:

print "Found 'is' in the string."

希望本文所述对大家的Python程序设计有所帮助。`

经过一天的努力,总算在第二天中午完成了两个比较完美的程序,一个是需要读取txt文档进行比对,还有一个是利用while语法不断的读取输入的内容和列表内的成员进行比对,虽然第二个方法好像比较好,可是我还是喜欢第一个哈。

#encoding:gbk

bj = ['项雨泽','黄皓翔','廖羽良','袁雨辰','杨宇轩','廖思凯','简博成','伍依铭','钟佳婷','陈欣怡','伍宇乐','周佳慧','熊子嫣','黄宇泉','刘思琦','刘晨宇','陈可佳','牛艺涵','伍妙思','钟艺轩','彭紫夏','黄育宸','刘子渊','肖哲浩','林弈名','严恺昕','刘子文','郭雨辰','钟瑞秋','刘俊佑','林颖希','黄佳敏','梁镇南','闻怡航','林涵羽']

with open('交作业成员.txt',encoding="utf-8") as file2:

cy = file2.read()

for b in bj:

if b not in cy:

print(b +'没交作业')

else:

pass

#print(b +'交了作业')

print("===============所有内容检测完毕==============")

input()

上面这一段呢,是需要读取一个交作业成员.txt来进行和bj这个列表比对的,比较稳定,目前还没出过什么问题,还是比较好用的.

接下来下边这一个,是可以直接复制黏贴进来使用的,会方便一些.

要知道,这里使用while,完全是因为在python里,input就是读取你的输入,和c语言的cin是一样的,但是python在input的时候,遇到换行符是自动结束的,所以必须使用while语句来不断的读取所有的内容,因为家长在微信群是接龙形式报告作业的完成度的,完成的就接龙,没写的就不接龙,所以直接复制粘贴进来,然后输入ok并回车,程序就继续执行下一步,进行比对,用班级人员的姓名一个一个去匹配输入的接龙名字,如果遇到有这个名字就pass,如果没有,就提示该单位未交作业。

而上一个程序是read()直接读取文本文档,这里要注意,不是用readlines(),我在这里被坑了蛮久。

#encoding:gbk

bj = ['项雨泽','黄皓翔','廖羽良','袁雨辰','杨宇轩','廖思凯','简博成','伍依铭','钟佳婷','陈欣怡','伍宇乐','周佳慧','熊子嫣','黄宇泉','刘思琦','刘晨宇','陈可佳','牛艺涵','伍妙思','钟艺轩','彭紫夏','黄育宸','刘子渊','肖哲浩','林弈名','严恺昕','刘子文','郭雨辰','钟瑞秋','刘俊佑','林颖希','黄佳敏','梁镇南','闻怡航','林涵羽']

zy = ""

while True:

cy = input("请输入今日名单: ")

if cy != "ok":

zy += cy

else:

break

#print(zy)

for b in bj:

if b not in zy:

print(b +'没交作业')

else:

pass

#print(b +'交了作业')

print("===============所有内容检测完毕==============")

input()

以下为2020年3月10日添加了一个统计,统计没交作业有多少人

#encoding:gbk

bj = ['项雨泽','黄皓翔','廖羽良','袁雨辰','杨宇轩','廖思凯','简博成','伍依铭','钟佳婷','陈欣怡','伍宇乐','周佳慧','熊子嫣','黄宇泉','刘思琦','刘晨宇','陈可佳','牛艺涵','伍妙思','钟艺轩','彭紫夏','黄育宸','刘子渊','肖哲浩','林弈名','严恺昕','刘子文','郭雨辰','钟瑞秋','刘俊佑','林颖希','黄佳敏','梁镇楠','闻怡航','林涵羽']

zy = ""

num = 0

while True:

cy = input("请输入今日名单: ")

if cy != "ok":

zy += cy

else:

break

#print(zy)

for b in bj:

if b not in zy:

print(b +'没交作业')

num+=1

else:

pass

#print(b +'交了作业')

print("===============共计" + str(num) + "人没交作业.==============")

input()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值