热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python字符串的基本处理实验报告_20192111实验三《Python程序设计》实验报告

201921112019-2020-2《Python程序设计》实验三报告课程:《Python程序设计》班级:1921姓名:蒋龙腾学号&#x

20192111 2019-2020-2 《Python程序设计》实验三报告

课程:《Python程序设计》

班级: 1921

姓名: 蒋龙腾

学号:20192111

实验教师:王志强

实验日期:2020年5月16日

必修/选修: 公选课

1.实验内容

1.创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;

2.要求包含文件的基本操作,例如打开和读写操作。

3.要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。

4.程序代码托管到码云。

2. 实验过程及结果

服务端

"""服务端"""

import socket

import base64

import os.path

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.bind(('127.0.0.1',8001))

s.listen()

conn ,address = s.accept()

data = conn.recv(1024)

strdecode = base64.b64decode(data)

text = str(strdecode.decode()).encode()

print(text)

conn.sendall(("服务器收到内容:"+ str(strdecode.decode())).encode())

os.chdir(r"G:\pythonproject\shiyan3")

file = open(r"G:\pythonproject\shiyan3\code2.txt","ab")

file.write(text)

file.close()

s.close()

客户端

"""客户端"""

import os.path

import socket

import base64

os.chdir(r"G:\pythonproject\shiyan3")

file = open(r"G:\pythonproject\shiyan3\code.txt","a")

text = input("请输入内容:")

file.write(text)

file.close()

file = open(r"G:\pythonproject\shiyan3\code.txt", "r")

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect(('127.0.0.1', 8001))

str = file.read()

str1 = str.encode(encoding ='utf-8',errors = 'strict')

str2 = base64.b64encode(str1)

s.sendall(str2)

data = s.recv(1024)

print(data.decode())

s.close()

file.close()

结果展示:

码云链接:

3. 实验过程中遇到的问题和解决过程

问题1:不会对文件进行加密与解密

问题1解决方案:在菜鸟教程中找到了最简单的用base64进行加解密的方法

问题2:菜鸟教程中写道

str = "this is string example....wow!!!";

print "Encoded String: " + str.encode('base64','strict')

在pycharm中运行会报错

问题2解决方案:查询后得知python3不能直接这样使用,要先将需要加密的字符串转成bytes的string,bytes 再进行 base64 编码

str1 = str.encode(encoding ='utf-8',errors = 'strict')

str2 = base64.b64encode(str1)

问题3:文件解密出来后是二进制,无法write到文件中

问题3解决方案:使用了'ab'的文件打开模式,使其以二进制的格式成功写入文件中

其他(感悟、思考等)

感悟:

在困难的事情都能够化繁为简,只要有耐心都能做到

参考资料

标签:20192111,Python,base64,str,file,encode,import,实验报告,socket



推荐阅读
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
author-avatar
hojk
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有