嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av15123607/?from=search&seid=10211084839195730432#page=25 中的38-41讲

# -*- coding: utf-8 -*-
#嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av15123607/?from=search&seid=10211084839195730432#page=25 中的38-41讲
# 文件
# 文件是存储在外部介质上的数据或信息的集合
# 文件是有序的数据序列
# 常用的编码
# ASCII码是标准化字符集
# 7个二进制位编码
# 表示128个字符 # ord() 将字符转化为ASCII码, chr() 将ASCII码转化为字符
#
# Unicode :为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言跨平台的需求。
# 有65536个字符的编码空间
# 它是十六进制的编码方式
#
# UTF-8 : 为一种可变长度的Unicode编码,它是一种多字节的编码体系
# 英文对应Unicode的单字节,中,日,韩文对应Unicode的三字节
# 可以用一到四个字节的不同长度来表示
#
# Python中字符串类型是未编码的类型,我们可以用encode()来进行编码操作,使用decode()来进行解码操作
#
# GBK编码 :全称为《汉字内码扩展规范》
# 双字节编码
#
# 文件数据按其组织形式的不同可分为文本文件和二进制文件
# 文本文件:以ASCII码方式存储的文件,英文,数字等字符存储在ASCII码上
# 文本文件是基于字符定长的ASCII码文件
# Python使用常规换行符(\n)表示换行
# 二进制文件
# 广义二进制文件:文件在外部设备的存放形式为二进制的文件
# 狭义二进制文件:除文本文件外的所有文件
# 二进制文件包括照片,音乐,视频,计算机程序等
# 二进制文件优点:
# 更加节省空间
# 采用二进制无格式存储
# 二进制数据表示更为精确,不会造成有效位的丢失。
# 二进制文件编码是变长的,灵活利用率更高
# 不同的二进制文件解码方式不同
#
# 文件操作:
# 读取
# 写入
# 定位
# 计算,追加等
#
# 打开文件
# open()
# <variable> = open(<name>,<mode>)
# mode形式:r:只读,如果文件不存在,则输出错误
# w: 只写,如果文件不存在,则自动创建文件
# a: 附加到文件末尾
# rb:只读二进制文件,如果文件不存在,则输出错误
# wb:只写二进制文件,如果文件不存在,则自动创建文件
# ab: 附加到二进制文件末尾
# r+ :读写
# read() 返回值为包含整个文件内容的一个字符串
# readline() 返回值为文件下一行内容的一个字符串
# readlines() 返回值为整个文件内容的列表,每项是以换行符为结尾的一行字符串。
# write() 把含有文本数据或二进制数据块的字符串定稿到文本中
# writelines() 针对列表操作,接受一个字符串列表作为参数,将它们写入文件,并且行结束符不会被自动加入
#
#infle = open(r"C:\Users\Admin\Desktop\宋冬野 - 斑马,斑马.flac",‘rb‘) #文件路径要根据实际情况填列
#print(infle)
#infile = open(r"C:\Users\Admin\Desktop\123.txt",‘r‘)
#for i in range(10):
#    line = infile.readline()
#    print(line[:-1])
#>>>outfile = open(r‘C:\Users\Admin\Desktop\123.txt‘,‘w‘) #文件路径要根据实际情况填列
#>>>outfile.writelines(["Hello",‘ ‘,‘world‘]) #写入内容后原文件内容会被清除
#>>>outfile.close()
#>>>infile = open(r‘C:\Users\Admin\Desktop\123.txt‘,‘r‘) #文件路径要根据实际情况填列
#>>>infile.read()
#‘Hello world‘
#
# 文件遍历:最常见的文件处理方法,如拷贝,根据数据文件定义行走路径,将文件由一种编码转换成另一种编码。
# 遍历文件模板:
# 通用代码框架:
#file = open(r‘文件路径‘,‘r‘)
#for line in file.readlines():
#    编写程序处理一行文件内容
#file.close()
# 简化代码框架
#file = open(r‘文件路径‘,‘r‘)
#for line in file:
#  编写程序处理一行文件内容
#file.close()
#
# 文件拷贝代码
"""
def main():
  f1 = input("请输入一个需要拷贝的文件名称: ").strip()
  f2 = input("请输入一个拷贝后的目标文件名称: ").strip()
  infile = open(f1,‘r‘)
  outfile = open(f2,‘w‘)
  countLines = countChars = 0
  for line in infile:
    countLines += 1
    countChars += len(line)
    outfile.write(line)
  print(countLines, "lines and ", countChars, "chars copied.")

  infile.close()
  outfile.close()

main()
"""
"""
data.txt
300,0,144,1,0,0 #元素1(第一列)路径前进像素数
300,0,144,0,1,0 #元素2(第二列)转动方向,0为左,1为右
300,0,144,0,0,1 #元素3(第三列)转动角度
300,0,144,1,1,0 #元素3(最后) 绘制颜色的RGB值
300,0,108,0,1,1
184,0,72,1,0,1
184,0,72,0,0,0
184,0,72,0,0,0
184,0,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
"""
# 根据data.txt文件中的数据在窗口中进行动态路径绘制

import turtle

def main():
  turtle.title("数据驱动的动态路径绘制")
  turtle.setup(800,600,0,0)
  pen = turtle.Turtle()
  pen.color("red")
  pen.width(5)
  pen.shape("turtle")
  pen.speed(5)
  result = []
  file = open(r"C:\Users\fengbo\Desktop\data.txt","r") #文件路径要根据实际情况填列
  for line in file:
    print(type(line)) #查看line的属性
    print(line.split(‘,‘)) #查看分割后line的存储信息
    result.append(list(map(float,line.split(‘,‘))))
  print(result)

  print(len(result))
  for i in range(len(result)):
    pen.color((result[i][3],result[i][4],result[i][5]))
    pen.fd(result[i][0])
    if result[i][1]:
      pen.rt(result[i][2])
    else:
      pen.lt(result[i][2])
  pen.goto(0, 0)

if __name__ == ‘__main__‘:
  main()

# 文件信息合并程序
ftele1 = open(r‘C:\Users\fengbo\Desktop\电话1106.txt‘,‘rb‘)
ftele2 = open(r‘C:\Users\fengbo\Desktop\邮箱1106.txt‘,‘rb‘)

ftele1.readline() #跳过第一行
ftele2.readline() #跳过第一行
lines1 = ftele1.readlines()
lines2 = ftele2.readlines()

list1_name = []
list2_name = []
list1_tele = []
list2_email = []

for line in lines1: #获取第一个文本中的姓名和电话信息
  elements = line.split()
  list1_name.append(str(elements[0].decode(‘gbk‘)))
  list1_tele.append(str(elements[1].decode(‘gbk‘)))

for line in lines2:
  elements = line.split()
  list2_name.append(str(elements[0].decode(‘gbk‘)))
  list2_email.append(str(elements[1].decode(‘gbk‘)))

#按索引方式遍历姓名列表1
for i in range(len(list1_name)):
  s = ‘‘
  if list1_name[i] in list2_name:
    j = list2_name.index(list1_name[i]) #找到姓名,列表1对应列表2中的姓名
    s = ‘\t‘.join([list1_name[i], list1_tele, list2_email[j]])
    s += ‘\n‘
  else:
    s = ‘\t‘.join([list1_name[i], list1_tele, str(‘ ----- ‘)])
    s += ‘\n‘
  lines.append(s)

#处理姓名列表2中剩余的姓名
for i in range(len(list2_name)):
  s = ‘‘
  if list2_name[i] not in list1_name:
    s = ‘\t‘.join([list2_name[i], str(‘ ----- ‘), list2_email[i]])
    s += ‘\n‘
  lines.append(s)

ftele3 = open(r‘C:\Users\fengbo\Desktop\电话邮箱1106.txt‘,‘w‘)
ftele3.write(lines)

ftele3.close()
ftele1.close()
ftele2.close()
print("个人信息簿合并完成。")      #需要学完正则表达式后再来回顾

时间: 2024-10-20 05:26:21

嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av15123607/?from=search&seid=10211084839195730432#page=25 中的38-41讲的相关文章

嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av13570243/?from=search&amp;seid=15873837810484552531 中的15-22讲

#coding=gbk#嵩天老师的零基础Python笔记:https://www.bilibili.com/video/av13570243/?from=search&seid=15873837810484552531 中的15-22讲#数字类型的关系#三种类型存在一种逐渐扩展的关系:#整数 ->浮点数 ->复数(整数是浮点数的特殊,浮点数是复数的特殊)#不同数字类型之间可以进行混合运算,运算后生成的结果为最宽类型.如整数+浮点数=浮点数#三种类型可以相互转换#函数:int(), fl

零基础Python学习路线,小白的进阶之路!

近几年Python的受欢迎程度可谓是扶摇直上,当然了学习的人也是愈来愈多.一些学习Python的小白在学习初期,总希望能够得到一份Python学习路线图,小编经过多方汇总为大家汇总了一份Python学习路线图.对于一个零基础的想学习python的朋友来说,学习方法很重要, 学习方法不对努力白费 一定要有一个正确的学习线路与方法零基础Python学习路线,小白的进阶之路!零基础Python学习路线,小白的进阶之路!必学知识:[Linux基础][Python基础语法][Python字符串][文件操作

Spark零基础学习笔记(一)——Python版

由于Scala才刚刚开始学习,还是对python更为熟悉,因此在这记录一下自己的学习过程,主要内容来自于spark的官方帮助文档,这一节的地址为: http://spark.apache.org/docs/latest/quick-start.html 文章主要是翻译了文档的内容,但也在里边加入了一些自己在实际操作中遇到的问题及解决的方案,和一些补充的小知识,一起学习. 环境:Ubuntu 16.04 LTS,Spark 2.0.1, Hadoop 2.7.3, Python 3.5.2, 利用

Spark (Python版) 零基础学习笔记(二)—— Spark Transformations总结及举例

1. map(func) 将func函数作用到数据集的每个元素,生成一个新的分布式的数据集并返回 1 >>> a = sc.parallelize(('a', 'b', 'c')) 2 >>> a.map(lambda x: x+'1').collect() 3 ['a1', 'b1', 'c1'] 2. filter(func) 选出所有func返回值为true的元素,作为一个新的数据集返回 1 >>> a = sc.parallelize(rang

小强老师的零基础学习软件测试之LR笔记

性能测试常见用语 并发用户数量:与服务器进行交互的在线用户数量 请求响应时间:从客户端发出请求到得到响应的整个时间.一般包括网络响应时间+server的响应时间 事务响应时间:完成这个事务所用的时间.这个是性能测试中重点关注的指标 吞吐率:单位时间在网络上传输的数据量.这个是衡量网络性能的主要指标 TPS:每秒钟系统能够处理事务的数量. 点击率:每秒发送的http请求的数量,点击率越大对server的压力也就越大 资源利用率:对不同资源的使用程度,比如服务器的CPU,内存等. LR目录分析 了解

零基础Python爬虫实现(爬取最新电影排行)

提示:本学习来自Ehco前辈的文章, 经过实现得出的笔记. 目标网站 http://dianying.2345.com/top/ 网站结构 要爬的部分,在ul标签下(包括li标签), 大致来说迭代li标签的内容输出即可. 遇到的问题? 代码简单, 但遇到的问题很多. 一: 编码 这里统一使用gbk了. 二: 库 过程中缺少requests,bs4,idna,certifi,chardet,urllib3等库, 需要手动添加库, 我说一下我的方法 库的添加方法: 例如:urllib3 百度urll

零基础python教程-用Python设计你的第一个小游戏

学以致用,既然学习了python就要让它来实现我们想做的东西,这次咱就用python来做个简单小游戏,在实践中不断成长. 1.游戏代码: 输入数字,来猜测原作者心中所想的数字,猜中夸你,猜不中不夸你,游戏结束. 建议上面的代码,手工打一次,你会发现那些单词并没有看到的那么容易看.以下为翻译代码 2.tab缩进 tab有两种功能,一种是缩进(也可用空格来表示,tab在不同的编辑器里面可能是2个空格,4个空格或是8,要留意这个问题.),如上述代码中4,6行代码为缩进,来表明属于一个模块.另一种是在i

零基础 Python day1

0Python是高级语言 1  IDLE是Python软件包自带的一个集成开发环境,初学者可以利用它方便地创建.运行.测试和调试Python程序. 2 打印 输出 3 * 4乘5是同类型发表五次 加五不是同类型不可以 5 在外用双引号印上 6 因为有更多的框架在Python3 会继续开发 Python2 有可以进步的地方 0没有不同 1 2 原文地址:https://www.cnblogs.com/vinn/p/9073615.html

零基础python之4函数重用-函数与模块(附详细的步骤和程序)

4代码重用--函数与模块 重用代码是构建一个可维护系统的关键. 代码组是Python中对块的叫法. 对之前的vowels代码功能创建一个函数名为search_for_vowels( ) 在函数调用时结果: Bool内置函数,提供某个值时它会返回这个值计算为true还是false. 关于真假: Python中的每一个对象都有一个关联的真值,表示这个对象计算为true或false. 如果计算值为0.值None.空串或一个内置的数据结构,则为false. 任何非空的数据结构都是true. '''FUN