列表解析、生成器、文件操作

列表解析

[ 表达式 for var in 序列]  
    类似 for var in 序列:
            代码块
[ 表达式 for var in 序列 if 条件] 
[ 表达式 for var1 in 序列1 for var2 in 序列2]  

例: 将列表中的数字变成字符串
L = [1,4,6,4,1]
#传统方法
ret = []
for i in L:
tmp = str(i)
ret.append(tmp)
print(ret)
#列表解析
ret = [str(i) for i in L]
print(ret)

例: 将一个列表中的偶数取出
L = [1,41,36,57,18,82]
ret = []
for i in L:
if i % 2 == 0:
ret.append(i)
print(ret)

    ret = [ i for i in L if i % 2 == 0]
    print(ret)

例: 产生和列表一样多的 0
L = [1,41,36,57,18,82]
ret = [ 0 for i in L]
print(ret)

例: 嵌套循环
L1 = [1,2,3]
L2 = ‘abc’
ret = [ ‘{}{}’.format(i,j) for i in L1 for j in L2]
print(ret)
#传统方法
for i in L1:
for j in L2:
tmp = ‘{}{}’.format(i,j)
print(tmp)
生成器 可以使用小括号的形式,也可以使用yield语句

(表达式 for var in 序列)  
    类似 for var in 序列:
            代码块
( 表达式 for var in 序列 if 条件 ) 
( 表达式 for var1 in 序列1 for var2 in 序列2 )

和列表解析的不同之处: 列表解析会将数据全部生成放到内存里,而生成器只会在内存里放一个表达式,当用户需要数据时,计算产生
range()就是一个典型的生成器

生成器和列表解析写法一致
生成器可以使用next取值,也可以使用for迭代取值
L = [1,2,3,21,432,64]
ret = [ str(i) for i in L]
print(ret)
ret = ( str(i) for i in L )

print(next(ret))
print(next(ret))
for i in ret:
print(i)
文件操作

文件操作,是有模式的
    r   : 默认,只读
    w   : 只能写,打开文件时,如果文件没有则创建,如果文件存在则清空
    a   : 只能追加写,打开文件时,如果文件没有则创建,如果文件存在则追加
    r+  : 只能读写  w+  a+
    b   : 可以和上面的所有模式结合,表示以二进制的方式进行读写文件  rb  wb
            二进制文件和文本文件的本质区别,在于文本文件有编码。它们在硬盘上一模一样

打开文件 open(文件名,模式,[encoding=utf-8],[errors='ignore'])
    文件名         : 操作的文件,可以是绝对路径也可以为相对路径,不过文件名要完整
    模式           : r  w  wb  a 
    encoding       : 如果为文本文件,指定文件的解码方式,linux默认为utf-8
    errors         : 只能指定当解码错误时的处理方式,当为ignore时表示忽略解码错误,默认为异常

    打开文件后,文件对象的常用方法:
    close()              : 关闭一个文件
    readline()           : 读入一行数据
    readlines()          : 读入整个文件放到列表中,每一行作为列表中的一个元素
    write(data)          : 写入指定数据
    writelines()         : 将一个列表写入一个文件中,注意列表中的所有元素必须为字符串
    read()               : 读入文件指定字节到内存中,默认读入整个文件  read(10)
    tell()               : 返回当前文件指针的位置,文件指针可以理解为光标,返回一个字节位置
    seek()               : 移动文件指针

读文件

方法1:
    f = open(r'selinux','r')
    line = f.readline()
    while line:
        print(line,end='')
        line = f.readline()
    f.close()

    ==========================
    f = open(r'selinux','r')
    while True:
        line = f.readline()
        if not line:break
        print(line,end='')
    f.close()

方法2: 不推荐,因为会读入整个文件到内存
    f = open(r'selinux','r',encoding='utf-8',errors='ignore')
    ret = f.readlines()
    print(ret)
    f.close()

    ===============================
    f = open(r'selinux','r',encoding='utf-8',errors='ignore')
    ret = f.read()
    print(ret)
    f.close()

方法3: 尤其在处理二进制文件,和网络上的数据时,最好使用此方法
    f = open(r'selinux','r',encoding='utf-8',errors='ignore')
    while True:
        con = f.read(10)
        if not con: break
        print(con,end='')
    f.close()

方法4: 最简单的读入行的方法
    f = open(r'selinux','r',encoding='utf-8',errors='ignore')
    for line in f:
        print(line,end='')
    f.close()

写文件

注意: 写数据时,并不会自动添加换行符,保持和原数据一致,写入的数据必须为字符串
方法1:
    #f = open('file','a')
    f = open('file','w')
    f.write('abc\n')
    f.write('123')
    f.close()

方法2:
    L = ['abc\n','123']
    #f = open('file','w')
    f = open('file','a')
    f.writelines(L)
    f.close()     

二进制的方法读写文件
#将一张图片如百度logo下载到本地,进行读写
f = open(‘baidu.png’,‘rb’)
ret = f.read()
f.close()

    fw = open('baidu-1.png','wb')
    fw.write(ret)
    fw.close()   

with语句 上下文跟踪,当with代码块结束时,会自动关闭文件
with open(文件,模式) as 变量f:
代码块)

with open('selinux','r') as f:
    for line in f:
        print(line,end='')

tell() 返回当前文件指针位置
f = open(‘a.txt’)

    print(f.tell())
    print(f.readline())

    print(f.tell())
    print(f.readline())

    f.close()

seek 移动文件指针
seek(arg1,arg2)
参数2: 只能为 0 1 2
0 : 回到行首
1 : 光标当前位置
2 : 回到行尾
参数1: 偏移量 一般正数向右,负数向左
如果文件是二进制形式打开,则支持所有情况的参数1和参数2
如果文件是以文本形式打开的,只有参数2为0时才支持偏移量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
戎象科技离线编程器是一款专为工业机器人编程而设计的软件工具,其中一项功能是生成pgf文件。 pgf(Program Group File)文件是一种用于描述机器人动作的文件格式。它包含了机器人在不同任务和工作情景下所需的各种动作指令和参数设置。通过离线编程器生成pgf文件,可以提前将工业机器人的编程任务规划好,并将其保存为文件,以便在实际操作中进行调用和执行。 生成pgf文件的过程大致分为以下几步: 1. 创建编程任务:在离线编程器中,首先需要创建一个新的编程任务或打开一个已有的任务。 2. 添加动作指令:在编程任务中,可以通过编辑器界面添加不同的动作指令,如移动、旋转、抓取等。 3. 参数设置:对于每个动作指令,可以根据实际需求进行参数设置,如速度、加速度、力度等。 4. 保存为pgf文件:完成编程任务后,将其保存为pgf文件,以便在实际操作时使用。 通过离线编程器生成的pgf文件可以在实际机器人操作时进行调用和执行。在机器人控制系统中,将pgf文件传输至机器人控制器,控制器解析pgf文件中的指令,并将其转化为机器人动作。这样,就可以实现对工业机器人的自动化编程和操作。 总之,戎象科技离线编程器的pgf文件生成功能可以帮助工业机器人实现高效、精确的自动化编程,提高生产效率和自动化水平。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值