精华内容
下载资源
问答
  • python读写、创建文件、文件夹等等

    万次阅读 多人点赞 2019-06-23 17:00:08
    python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一...

    Python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。

    得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd()

    返回指定目录下的所有文件和目录名:os.listdir()

    函数用来删除一个文件:os.remove()

    删除多个目录:os.removedirs(r“c:\python”)

    检验给出的路径是否是一个文件:os.path.isfile()

    检验给出的路径是否是一个目录:os.path.isdir()

    判断是否是绝对路径:os.path.isabs()

    检验给出的路径是否真地存:os.path.exists()

    返回一个路径的目录名和文件名:os.path.split()  eg os.path.split('/home/swaroop/byte/code/poem.txt') 结果:('/home/swaroop/byte/code', 'poem.txt')

    分离扩展名:os.path.splitext()

    获取路径名:os.path.dirname()

    获取文件名:os.path.basename()

    运行shell命令:os.system()

    读取和设置环境变量:os.getenv() 与os.putenv()

    给出当前平台使用的行终止符:os.linesep    Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'

    指示你正在使用的平台:os.name 对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'

    重命名:os.rename(old, new)

    创建多级目录:os.makedirs(r“c:\python\test”)

    创建单个目录:os.mkdir(“test”)

    获取文件属性:os.stat(file)

    修改文件权限与时间戳:os.chmod(file)

    终止当前进程:os.exit()

    获取文件大小:os.path.getsize(filename)

    文件操作:

    os.mknod("test.txt") #创建空文件
    
    fp = open("test.txt",w)  #直接打开一个文件,如果文件不存在则创建文件

    关于open 模式:

    • w     以写方式打开
    • a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)
    • r+     以读写模式打开
    • w+     以读写模式打开 (参见 w )
    • a+     以读写模式打开 (参见 a )
    • rb     以二进制读模式打开
    • wb     以二进制写模式打开 (参见 w )
    • ab     以二进制追加模式打开 (参见 a )
    • rb+    以二进制读写模式打开 (参见 r+ )
    • wb+    以二进制读写模式打开 (参见 w+ )
    • ab+    以二进制读写模式打开 (参见 a+ )
    fp.read([size])  #size为读取的长度,以byte为单位
    
    fp.readline([size])  #读一行,如果定义了size,有可能返回的只是一行的一部分
    
    fp.readlines([size])   #把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。
    
    fp.write(str) #把str写到文件中,write()并不会在str后加上一个换行符
    
    fp.writelines(seq)    #把seq的内容全部写到文件中(多行一次性写入)。这个函数也只是忠实地写入,不会在每行后面加上任何东西。
    
    fp.close()   #关闭文件。python会在一个文件不用后自动关闭文件,不过这一功能没有保证,最好还是养成自己关闭的习惯。  如果一个文件在关闭后还对其进行操作会产生ValueError
    
    fp.flush()   #把缓冲区的内容写入硬盘
    
    fp.fileno()    #返回一个长整型的”文件标签“
    
    fp.isatty()    #文件是否是一个终端设备文件(unix系统中的)
    
    fp.tell()#返回文件操作标记的当前位置,以文件的开头为原点
    
    fp.next()    #返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。
    
    fp.seek(offset[,whence])  #将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
    
    fp.truncate([size])   #把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

    目录操作:

    os.mkdir("file")     #创建目录

    复制文件:

    • shutil.copyfile("oldfile","newfile") oldfile和newfile都只能是文件
    • shutil.copy("oldfile","newfile")   oldfile只能是文件夹,newfile可以是文件,也可以是目标目录

    复制文件夹:

    • shutil.copytree("olddir","newdir") olddir和newdir都只能是目录,且newdir必须不存在

    重命名文件(目录)

    • os.rename("oldname","newname") 文件或目录都是使用这条命令

    移动文件(目录)

    • shutil.move("oldpos","newpos")   

    删除文件

    • os.remove("file")

    删除目录

    • os.rmdir("dir")只能删除空目录
    • shutil.rmtree("dir")  空目录、有内容的目录都可以删

    转换目录

    • os.chdir("path")   换路径

    Python读写文件

    1.open

    使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。

    '''
    学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    file_object = open('thefile.txt')
    try:
        all_the_text = file_object.read()
    finally:
        file_object.close()
    

    注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。

    2.读文件

    读文本文件

    input = open('data' , 'r')
    #第二个参数黑认为r
    input = open('data')

    读二进制文件

    input = open('data', 'rb')

    读取所有内容

    file_object = open('thefile.txt')
    try:
        all_the_text = file_object.read()
    finally:
        file_object.close()

    读固定字节

    '''
    学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    file_object = open('abinfile', 'rb')
    try:
        while True:
            chunk = file_object.read(100)
            if not chunk:
                break
            do_something_with(chunk)
    finally:
        file_object.close( )

    读每行

    list_of_all_the_lines = file_object.readlines()

    如果文件是文本文件,还可以直接遍历文件对象获取每行:

    for line in file_object:
        process line

    3.写文件

    写文本文件

    output = open('data', 'w')
    

    写二进制文件

    output = open('data', 'wb')
    

    追加写文件

    output = open('data', 'w+')

    z写数据

    file_object = open('thefile.txt', 'w')
    file_object.write(all_the_text)
    file_object.close()

    写入多行

    file_object.writelines(list_of_text_strings)

    注意,调用writelines写入多行在性能上会比使用write一次性写入要高。

    在处理日志文件的时候,常常会遇到这样的情况:日志文件巨大,不可能一次性把整个文件读入到内存中进行处理,例如需要在一台物理内存为 2GB 的机器上处理一个 2GB 的日志文件,我们可能希望每次只处理其中 200MB 的内容。

    在 Python 中,内置的 File 对象直接提供了一个 readlines(sizehint) 函数来完成这样的事情。以下面的代码为例:

    file = open('test.log' , 'r')sizehint = 209715200
    # 20OMposition = olines = file.readlines(sizehint)while not file.tell() - position < 0:
    position = file.tel1()
    lines = file.readlines(sizehint)

    每次调用 readlines(sizehint) 函数,会返回大约 200MB 的数据,而且所返回的必然都是完整的行数据,大多数情况下,返回的数据的字节数会稍微比 sizehint 指定的值大一点(除最后一次调用 readlines(sizehint) 函数的时候)。通常情况下,Python 会自动将用户指定的 sizehint 的值调整成内部缓存大小的整数倍。

    file在python是一个特殊的类型,它用于在python程序中对外部的文件进行操作。在python中一切都是对象,file也不例外,file有file的方法和属性。下面先来看如何创建一个file对象:

    file(name[, mode[, buffering]])

    file()函数用于创建一个file对象,它有一个别名叫open(),可能更形象一些,它们是内置函数。来看看它的参数。它参数都是以字符串的形式传递的。name是文件的名字。

    mode是打开的模式,可选的值为r w a U,分别代表读(默认) 写 添加支持各种换行符的模式。用w或a模式打开文件的话,如果文件不存在,那么就自动创建。此外,用w模式打开一个已经存在的文件时,原有文件的内容会被清空,因为一开始文件的操作的标记是在文件的开头的,这时候进行写操作,无疑会把原有的内容给抹掉。由于历史的原因,换行符在不同的系统中有不同模式,比如在 unix中是一个\n,而在windows中是‘\r\n’,用U模式打开文件,就是支持所有的换行模式,也就说‘\r’ '\n' '\r\n'都可表示换行,会有一个tuple用来存贮这个文件中用到过的换行符。不过,虽说换行有多种模式,读到python中统一用\n代替。在模式字符的后面,还可以加上+ b t这两种标识,分别表示可以对文件同时进行读写操作和用二进制模式、文本模式(默认)打开文件。

    buffering如果为0表示不进行缓冲;如果为1表示进行“行缓冲“;如果是一个大于1的数表示缓冲区的大小,应该是以字节为单位的。

    file对象有自己的属性和方法。先来看看file的属性。

    '''
    学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    closed #标记文件是否已经关闭,由close()改写
    
    encoding #文件编码
    
    mode #打开模式
    
    name #文件名
    
    newlines #文件中用到的换行模式,是一个tuple
    
    softspace #boolean型,一般为0,据说用于print

    file的读写方法:

    F.read([size]) #size为读取的长度,以byte为单位
    
    F.readline([size])
    
    #读一行,如果定义了size,有可能返回的只是一行的一部分
    
    F.readlines([size])
    
    #把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。
    
    F.write(str)
    
    #把str写到文件中,write()并不会在str后加上一个换行符
    
    F.writelines(seq)
    
    #把seq的内容全部写到文件中。这个函数也只是忠实地写入,不会在每行后面加上任何东西。

    file的其他方法:
     

    F.close()
    
    #关闭文件。python会在一个文件不用后自动关闭文件,不过这一功能没有保证,最好还是养成自己关闭的习惯。如果一个文件在关闭后还对其进行操作会产生ValueError
    
    F.flush()
    
    #把缓冲区的内容写入硬盘
    
    F.fileno()
    
    #返回一个长整型的”文件标签“
    
    F.isatty()
    
    #文件是否是一个终端设备文件(unix系统中的)
    
    F.tell()
    
    #返回文件操作标记的当前位置,以文件的开头为原点
    
    F.next()
    
    #返回下一行,并将文件操作标记位移到下一行。把一个file用于for ... in file这样的语句时,就是调用next()函数来实现遍历的。
    
    F.seek(offset[,whence])
    
    #将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
    
    F.truncate([size])
    
    #把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

    结尾给大家推荐一个非常好的学习教程,希望对你学习Python有帮助!

    Python基础入门教程推荐:更多Python视频教程-关注B站:Python学习者
     

    【Python教程】全网最容易听懂的1000集python系统学习教程(答疑在最后四期,满满干货)

    Python爬虫案例教程推荐:更多Python视频教程-关注B站:Python学习者
     

    2021年Python最新最全100个爬虫完整案例教程,数据分析,数据可视化,记得收藏哦

    展开全文
  • python 移动文件或文件夹操作

    万次阅读 多人点赞 2017-07-10 17:02:09
    目录:1、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法2、文件操作方法大全3、目录操作方法大全————————————————————————————–1、python中对文件、文件夹操作时...

    “无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点 这里 可以跳转到教程。”。

    目录:

    1、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法

    2、文件操作方法大全

    3、目录操作方法大全



    1、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法。

    1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()

    2.返回指定目录下的所有文件和目录名:os.listdir()

    3.函数用来删除一个文件:os.remove()

    4.删除多个目录:os.removedirs(r“c:\python”)

    5.检验给出的路径是否是一个文件:os.path.isfile()

    6.检验给出的路径是否是一个目录:os.path.isdir()

    7.判断是否是绝对路径:os.path.isabs()

    8.检验给出的路径是否真地存:os.path.exists()

    9.返回一个路径的目录名和文件名:os.path.split() eg os.path.split(‘/home/swaroop/byte/code/poem.txt’) 结果:(‘/home/swaroop/byte/code’, ‘poem.txt’)

    10.分离扩展名:os.path.splitext()

    11.获取路径名:os.path.dirname()

    12.获取文件名:os.path.basename()

    13.运行shell命令: os.system()

    14.读取和设置环境变量:os.getenv() 与os.putenv()

    15.给出当前平台使用的行终止符:os.linesep Windows使用’\r\n’,Linux使用’\n’而Mac使用’\r’

    16.指示你正在使用的平台:os.name 对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’

    17.重命名:os.rename(old, new)

    18.创建多级目录:os.makedirs(r“c:\python\test”)

    19.创建单个目录:os.mkdir(“test”)

    20.获取文件属性:os.stat(file)

    21.修改文件权限与时间戳:os.chmod(file)

    22.终止当前进程:os.exit()

    23.获取文件大小:os.path.getsize(filename)

    2、文件操作方法大全:

    1.os.mknod(“test.txt”) #创建空文件

    2.fp = open(“test.txt”,w) #直接打开一个文件,如果文件不存在则创建文件

    3.关于open 模式:

    w:以写方式打开,

    a:以追加模式打开 (从 EOF 开始, 必要时创建新文件)

    r+:以读写模式打开

    w+:以读写模式打开 (参见 w )

    a+:以读写模式打开 (参见 a )

    rb:以二进制读模式打开

    wb:以二进制写模式打开 (参见 w )

    ab:以二进制追加模式打开 (参见 a )

    rb+:以二进制读写模式打开 (参见 r+ )

    wb+:以二进制读写模式打开 (参见 w+ )

    ab+:以二进制读写模式打开 (参见 a+ )

    fp.read([size]) #size为读取的长度,以byte为单位

    fp.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分

    fp.readlines([size]) #把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。

    fp.write(str) #把str写到文件中,write()并不会在str后加上一个换行符

    fp.writelines(seq) #把seq的内容全部写到文件中(多行一次性写入)。这个函数也只是忠实地写入,不会在每行后面加上任何东西。

    fp.close() #关闭文件。python会在一个文件不用后自动关闭文件,不过这一功能没有保证,最好还是养成自己关闭的习惯。 如果一个文件在关闭后还对其进行操作会产生ValueError

    fp.flush() #把缓冲区的内容写入硬盘

    fp.fileno() #返回一个长整型的”文件标签“

    fp.isatty() #文件是否是一个终端设备文件(unix系统中的)

    fp.tell() #返回文件操作标记的当前位置,以文件的开头为原点

    fp.next() #返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。

    fp.seek(offset[,whence]) #将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。

    3、目录操作方法大全

    1.创建目录

    os.mkdir(“file”)

    2.复制文件:

    shutil.copyfile(“oldfile”,”newfile”) #oldfile和newfile都只能是文件

    shutil.copy(“oldfile”,”newfile”) #oldfile只能是文件夹,newfile可以是文件,也可以是目标目录

    3.复制文件夹:

    4.shutil.copytree(“olddir”,”newdir”) #olddir和newdir都只能是目录,且newdir必须不存在

    5.重命名文件(目录)

    os.rename(“oldname”,”newname”) #文件或目录都是使用这条命令

    6.移动文件(目录)

    shutil.move(“oldpos”,”newpos”)

    7.删除文件

    os.remove(“file”)

    8.删除目录

    os.rmdir(“dir”) #只能删除空目录

    shutil.rmtree(“dir”) #空目录、有内容的目录都可以删

    9.转换目录

    os.chdir(“path”) #换路径

    北京小辉微信公众号

    在这里插入图片描述

    大数据资料分享请关注

    在这里插入图片描述

    展开全文
  • (这样就标记当前的数据行) 思考题:如果这里选择全部或者规则呢? 二、再执行删除 “删除已标记“的删除动作参考”删除全部“的截图,具体步骤如下: 1、选中“删除已标记”按钮,双击“鼠标单击时...

    一、中继器的新增行

    中继器所显示的列表项与中继器的数据集有关,默认情况下是一一对应的。也就是说,中继器数据集中有多少行数据,那么,列表项就有多少个。

    r21

    那么,我们能不能通过新增数据行来增加列表项呢?

    可以的。我们可以通过动作对中继器进行新增行的操作。

    下面就以向默认状态下的中继器新增行举例,我们将一个文本框(命名为”Ipt”)和一个“新增”按钮放到编辑区。生成后的效果要求:点击“新增”按钮时,将文本框中输入的内容添加到中继器(命名为”Rpt”),显示出新的列表项。

    具体实现步骤如下:

    r22

    1、选中“新增”按钮,双击“鼠标单击时”事件名称,打开用例编辑器;

    2、点击动作列表中:中继器>数据集>新增行;

    3、在用例编辑器右侧,勾选要新增行的中继器;

    4、点击“新增行”的按钮;(箭头指向的位置,被Fx的编辑框遮挡住了)

    5、可以直接输入要新增的值,但是,因为我们是要将文本框的值添加到中继器,所以,这里我们点击“Fx”;

    6、新增局部变量,并命名为”Ipt”,设置“Ipt”=文本框”Ipt”的元件文字;

    7、点击变量函数列表,选择局部变量”Ipt”或者直接在编辑区输入[[Ipt]]。

    8、通过“确定”每一个对话框,回到主窗口,完成编辑。

    9、点击预览,或者生成Html文件(方法:发布-更多生成配置-HTML1文件—不在浏览器中打开,选择放入的文件夹-生成 。浏览器选择谷歌最好),并在浏览器中打开,查看效果。

    r230

    二、中继器的删除行

    是这样的,删除和新增不一样,因为删除,有很多种不同的方式,比如:

    • 删除当前行;
    • 删除全部;
    • 删除标记行;
    • 通过设置规则,删除满足条件的的行。

    A删除当前行

    首先,我们先来看怎么删除当前行。顾名思义,每一项要对应一个删除按钮。所以,我们要在中继器中添加一个“删除”按钮,通过点击“删除”按钮,来实现删除数据集中的数据。(注意:点击中继器界面,再放入删除按钮,在进行编辑,就会有“This”了)

    r23

    然后,在点击这个“删除“按钮的时候,我们要删除当前的一行。步骤如下:

    r24

    1、选中“删除”按钮,双击“鼠标单击时”事件名称,打开用例编辑器;

    2、点击动作列表中:中继器>数据集>删除行;

    3、在用例编辑器右侧,勾选要删除行的中继器;

    4、选中“This“;

    5、通过“确定”每一个对话框,回到主窗口,完成编辑。

    6、点击预览,或者生成Html文件,并在浏览器中打开,查看效果。

    r25

     

    B 全部删除

    首先,要删除中继器的全部内容,我们还是通过一个删除按钮来实现。

    我们在主页(不是中继器的主页哦)放一个圆角矩形当删除按钮。当点击这个删除按钮的时候,删除掉中继器中所有的内容。

    r31

    接下来,我们在点击这个“删除全部”按钮的鼠标点击时事件中添加用例!步骤如下:

    r33

    1、选中“全部删除”按钮,双击“鼠标单击时”事件名称,打开用例编辑器;

    2、点击动作列表中:中继器>数据集>删除行;

    3、在用例编辑器右侧,勾选要删除行的中继器;

    4、勾选”规则“;(当前版本没有“全部“的选项,所以需要通过规则来删除全部)

    5、规则中写入[[1==1]]或者true即可达到效果;

    6、通过“确定”每一个对话框,回到主窗口,完成编辑。

    7、点击预览,或者生成Html文件,并在浏览器中打开,查看效果。

    r34

     

    C删除标记行

    如果要删除标记行,当然要先标记后删除。那么怎么标记呢?

    我们再放一个删除按钮,到我们的案例里面。这个按钮的文字是”删除已标记”。

    假设,我们点击中继器中任意一行的之后,点击“删除已标记“这个按钮,就能把我们点击过得一项删除。

    这个效果的实现步骤如下:

    一、先进行标记

    r35

    1、选中中继器中用于显示文字的矩形,双击“鼠标单击时”事件名称,打开用例编辑器;

    2、点击动作列表中:中继器>数据集>标记行;

    3、在用例编辑器右侧,勾选要添加标记行的中继器;

    4、勾选”this“;(这样就标记了当前的数据行)

    思考题:如果这里选择全部或者规则呢?

    二、再执行删除

    “删除已标记“的删除动作参考”删除全部“的截图,具体步骤如下:

    1、选中“删除已标记”按钮,双击“鼠标单击时”事件名称,打开用例编辑器;

    2、点击动作列表中:中继器>数据集>删除行;

    3、在用例编辑器右侧,勾选要删除行的中继器;

    4、勾选”已标记“;

    5、通过“确定”每一个对话框,回到主窗口,完成编辑。

    6、点击预览,或者生成Html文件,并在浏览器中打开,查看效果。

    r36

     

     

    D通过设置规则,删除满足条件的的行。

    下面我们来看如何根据规则,删除中继器中指定的内容。

    案例效果:删除中继器中显示的文字内容与输入内容相同的行。

    首先呢,我们还是添加一些元件来帮助我们实现效果,在主页中我们添加一个文本输入框,取名叫”Ipt2”,再添加一个删除按钮。

    r41

    然后,按照下列步骤,完成按规则删除行。

    r42

    1、选中“删除”按钮,双击“鼠标单击时”事件名称,打开用例编辑器;

    2、点击动作列表中:中继器>数据集>删除行;

    3、在用例编辑器右侧,勾选要删除行的中继器;

    4、勾选”规则“;

    5、“规则”输入框的右侧有个fx,点击打开编辑框;

    6、新建一个局部变量“ipt2”来获取,文本输入框“ipt2”中输入的文字;

    7、点击打开“变量与函数列表”,选择中继器的属性”TargetItem.column0”和局部变量“ipt2”并用布尔“==”进行连接。[[TargetItem.Column0==ipt2]]

    r43

    8、通过“确定”每一个对话框,回到主窗口,完成编辑。

    9、点击预览,或者生成Html文件,并在浏览器中打开,查看效果。

    r44

    这里我们只是通过一种场景的模拟,来讲述通过规则删除中继器某一行的操作。其实,我们能通过规则来实现很多删除的效果。比如,我们之前讲过的删除全部。

    思考:

    能不能删除包含中文的行呢?

    能不能删除第6行至第9行呢?

    能不能删除单数行或双数行呢?

    能不能删除前10行呢?

    能不能删除没有被标记的行呢?

    答案:都可以。只要我们结合不同的函数、属性等等,通过书写不同的规则,基本上各种能够想到的删除效果我们都能实现。当然,这些是建立在对函数、属性等知识非常熟悉的基础上。

    中继器的应用部分案例:

    http://www.iaxure.com/share/jddemo/

    http://www.iaxure.com/share/bank/

    http://www.iaxure.com/share/tabp/

    http://www.iaxure.com/share/jhwz/

    你能看出哪里使用了中继器吗?

     

    原帖:http://www.iaxure.com/1858.html

    ---恢复内容结束---

    一、中继器的新增行

    中继器所显示的列表项与中继器的数据集有关,默认情况下是一一对应的。也就是说,中继器数据集中有多少行数据,那么,列表项就有多少个。

    r21

    那么,我们能不能通过新增数据行来增加列表项呢?

    可以的。我们可以通过动作对中继器进行新增行的操作。

    下面就以向默认状态下的中继器新增行举例,我们将一个文本框(命名为”Ipt”)和一个“新增”按钮放到编辑区。生成后的效果要求:点击“新增”按钮时,将文本框中输入的内容添加到中继器(命名为”Rpt”),显示出新的列表项。

    具体实现步骤如下:

    r22

    1、选中“新增”按钮,双击“鼠标单击时”事件名称,打开用例编辑器;

    2、点击动作列表中:中继器>数据集>新增行;

    3、在用例编辑器右侧,勾选要新增行的中继器;

    4、点击“新增行”的按钮;(箭头指向的位置,被Fx的编辑框遮挡住了)

    5、可以直接输入要新增的值,但是,因为我们是要将文本框的值添加到中继器,所以,这里我们点击“Fx”;

    6、新增局部变量,并命名为”Ipt”,设置“Ipt”=文本框”Ipt”的元件文字;

    7、点击变量函数列表,选择局部变量”Ipt”或者直接在编辑区输入[[Ipt]]。

    8、通过“确定”每一个对话框,回到主窗口,完成编辑。

    9、点击预览,或者生成Html文件(方法:发布-更多生成配置-HTML1文件—不在浏览器中打开,选择放入的文件夹-生成 。浏览器选择谷歌最好),并在浏览器中打开,查看效果。

    r230

    二、中继器的删除行

    是这样的,删除和新增不一样,因为删除,有很多种不同的方式,比如:

    • 删除当前行;
    • 删除全部;
    • 删除标记行;
    • 通过设置规则,删除满足条件的的行。

    A删除当前行

    首先,我们先来看怎么删除当前行。顾名思义,每一项要对应一个删除按钮。所以,我们要在中继器中添加一个“删除”按钮,通过点击“删除”按钮,来实现删除数据集中的数据。(注意:点击中继器界面,再放入删除按钮,在进行编辑,就会有“This”了)

    r23

    然后,在点击这个“删除“按钮的时候,我们要删除当前的一行。步骤如下:

    r24

    1、选中“删除”按钮,双击“鼠标单击时”事件名称,打开用例编辑器;

    2、点击动作列表中:中继器>数据集>删除行;

    3、在用例编辑器右侧,勾选要删除行的中继器;

    4、选中“This“;

    5、通过“确定”每一个对话框,回到主窗口,完成编辑。

    6、点击预览,或者生成Html文件,并在浏览器中打开,查看效果。

    r25

     

    B 全部删除

    首先,要删除中继器的全部内容,我们还是通过一个删除按钮来实现。

    我们在主页(不是中继器的主页哦)放一个圆角矩形当删除按钮。当点击这个删除按钮的时候,删除掉中继器中所有的内容。

    r31

    接下来,我们在点击这个“删除全部”按钮的鼠标点击时事件中添加用例!步骤如下:

    r33

    1、选中“全部删除”按钮,双击“鼠标单击时”事件名称,打开用例编辑器;

    2、点击动作列表中:中继器>数据集>删除行;

    3、在用例编辑器右侧,勾选要删除行的中继器;

    4、勾选”规则“;(当前版本没有“全部“的选项,所以需要通过规则来删除全部)

    5、规则中写入[[1==1]]或者true即可达到效果;

    6、通过“确定”每一个对话框,回到主窗口,完成编辑。

    7、点击预览,或者生成Html文件,并在浏览器中打开,查看效果。

    r34

     

    C删除标记行

    如果要删除标记行,当然要先标记后删除。那么怎么标记呢?

    我们再放一个删除按钮,到我们的案例里面。这个按钮的文字是”删除已标记”。

    假设,我们点击中继器中任意一行的之后,点击“删除已标记“这个按钮,就能把我们点击过得一项删除。

    这个效果的实现步骤如下:

    一、先进行标记

    r35

    1、选中中继器中用于显示文字的矩形,双击“鼠标单击时”事件名称,打开用例编辑器;

    2、点击动作列表中:中继器>数据集>标记行;

    3、在用例编辑器右侧,勾选要添加标记行的中继器;

    4、勾选”this“;(这样就标记了当前的数据行)

    思考题:如果这里选择全部或者规则呢?

    二、再执行删除

    “删除已标记“的删除动作参考”删除全部“的截图,具体步骤如下:

    1、选中“删除已标记”按钮,双击“鼠标单击时”事件名称,打开用例编辑器;

    2、点击动作列表中:中继器>数据集>删除行;

    3、在用例编辑器右侧,勾选要删除行的中继器;

    4、勾选”已标记“;

    5、通过“确定”每一个对话框,回到主窗口,完成编辑。

    6、点击预览,或者生成Html文件,并在浏览器中打开,查看效果。

    r36

     

     

    D通过设置规则,删除满足条件的的行。

    下面我们来看如何根据规则,删除中继器中指定的内容。

    案例效果:删除中继器中显示的文字内容与输入内容相同的行。

    首先呢,我们还是添加一些元件来帮助我们实现效果,在主页中我们添加一个文本输入框,取名叫”Ipt2”,再添加一个删除按钮。

    r41

    然后,按照下列步骤,完成按规则删除行。

    r42

    1、选中“删除”按钮,双击“鼠标单击时”事件名称,打开用例编辑器;

    2、点击动作列表中:中继器>数据集>删除行;

    3、在用例编辑器右侧,勾选要删除行的中继器;

    4、勾选”规则“;

    5、“规则”输入框的右侧有个fx,点击打开编辑框;

    6、新建一个局部变量“ipt2”来获取,文本输入框“ipt2”中输入的文字;

    7、点击打开“变量与函数列表”,选择中继器的属性”TargetItem.column0”和局部变量“ipt2”并用布尔“==”进行连接。[[TargetItem.Column0==ipt2]]

    r43

    8、通过“确定”每一个对话框,回到主窗口,完成编辑。

    9、点击预览,或者生成Html文件,并在浏览器中打开,查看效果。

    r44

    这里我们只是通过一种场景的模拟,来讲述通过规则删除中继器某一行的操作。其实,我们能通过规则来实现很多删除的效果。比如,我们之前讲过的删除全部。

    思考:

    能不能删除包含中文的行呢?

    能不能删除第6行至第9行呢?

    能不能删除单数行或双数行呢?

    能不能删除前10行呢?

    能不能删除没有被标记的行呢?

    答案:都可以。只要我们结合不同的函数、属性等等,通过书写不同的规则,基本上各种能够想到的删除效果我们都能实现。当然,这些是建立在对函数、属性等知识非常熟悉的基础上。

    中继器的应用部分案例:

    http://www.iaxure.com/share/jddemo/

    http://www.iaxure.com/share/bank/

    http://www.iaxure.com/share/tabp/

    http://www.iaxure.com/share/jhwz/

    你能看出哪里使用了中继器吗?

     

    这一节,我们来讲一下如何对中继器的数据进行修改。

    中继器数据的修改,也有几种不同的方式,比如:

    l  修改当前行;

    l  修改标记行;

    l  修改满足条件的行。

    这里,我们先了解一下如何修改当前行。

    修改当前行的话,我们需要把触发修改动作的元件放到中继器里面,在这个案例中,我在中继器主页中添加了一个文本(Lable)作为触发修改动作的按钮。同时,添加了一个文本框用来输入内容,并设置为隐藏。然后,在中继器数据集(在Rpt页面中,直接点击新增行就可以了)中多添加几行,以方便演示。

    u1

    我们将实现的效果是:

    1、点击文本(“编辑”)的时候,显示文本框,文本框中显示旧的数据,并获取焦点。

    2、同时,文本的文字从“编辑”变成”保存”;

    3、当完成文本框内容编辑,点击文本(“保存”)时,当前行数据被更改。

    实现步骤如下:

    首先,我们需要对文本(Lable)的文字进行判断,如果它的文字是“编辑”,那么点击时,我们完成以下动作:

    >>设置文本框的元件文字为当前数据行“neirong”列的值;

    >>设置显示文本框;

    >>设置文本框获取焦点;

    >>设置文本(Lable)的文字为“保存”。

    如果,它的文字是“保存”,那么点击时,我们对中继器的数据进行修改:

    u2

    1、点击动作列表中:中继器>数据集>更新行;

    2、在用例编辑器右侧,勾选要更新行的中继器;

    3、勾选”this“,即对当前行数据进行修改;

    4、选择要修改数据的列名,当前中继器数据集只有一列”neirong”,我们选择它,对他进行修改;如果数据集有多列,并且多列需要修改时,我们在这里则需要将所有要修改的列名都进行选择;

    5、键入新的列值;这里我们需要把文本框输入的文字作为新的列值保存,所以需要点击“fx”,进行6、7两步操作;

    6、新增局部变量,获取文本框输入的文字;

    7、点击打开“变量与函数列表”,选择局部变量,或者直接键入[[局部变量名称]],完成新列值的编辑。

    8、通过“确定”每一个对话框,回到主窗口,完成编辑。

    9、点击预览,或者生成Html文件,并在浏览器中打开,查看效果。

    u3

    展开全文
  • python学习笔记9.2-文件及文件夹操作

    万次阅读 2017-10-22 22:46:03
    本文主要介绍python对文件以及文件夹的操作,主要涉及到文件的创建、读取、文件内容的修改、删除,文件夹的索引、目录的判断等等。此节内容非常重要,是以后编程的基础。python文件夹和文件的操作主要借助于os和...

    本文主要介绍python对文件以及文件夹的操作,主要涉及到文件的创建、读取、文件内容的修改、删除,文件夹的索引、目录的判断等等。此节内容非常重要,是以后编程的基础。python文件夹和文件的操作主要借助于os和shutil模块,它是python内置模块,不需要安装,直接导入即可使用。

    import os
    path = os.getcwd() # get the current path
    print(path)

    1. 文件以及目录的操作

    1.1 得到当前目录,即返回当前运行文件所在的目录

    import os
    path = os.getcwd() # get the current path
    print(path)

    1.2 得到目录下的文件(即返回文件名称,包含文件夹名称,将这些名称组成一个列表)

    import os
    path = os.getcwd() # get the current path
    files = os.listdir(path)
    for file in files:
        print(file)

    1.3 删除目录(文件)

    import os
    os.removedirs(r'd:\home')

    1.4 判断给出的路径是否是一个目录(文件)

    import os
    os.path.isdir(r'd:\home') # 判断是否为目录
    os.path.isfile(r'd:\home\a.py') # 判断是否为文件

    1.5 判断给出的路径是否为绝对路径

    import os
    os.path.isabs(r'd:\home')

    1.6 判断给出的路径是否存在

    import os
    os.path.exists(r'd:\home')

    1.7 将路径分离为文件名和目录名

    import os
    path, file = os.path.split(r'd:\home\a.py')

    1.8 重命名目录或文件

    import os
    os.rename(a,b) # 将a文件名称修改为b

    1.9 创建目录

    import os
    os.mkdir('test') # 创建单个目录
    os.mkdirs(r'd:\home\a') # 创建多级目录

    1.a 获取目录(文件)属性以及文件大小

    import os
    os.stat(path) # 获取文件属性
    os.path.getsize(path) # 获取文件大小

    1.b 与系统有关(linux,Windows,macos),不同的系统的路径连接符不一样,所以直接使用连接符很容易使代码不能在不同的平台上使用,所以要合理的使用os库中的分隔符来代替

    import os
    os.name # 返回系统名称,对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'
    os.linesep # 给出当前平台使用的行终止符
    os.path.sep # 路径分隔符,可以跨平台使用
    

    1.c 连接路径,在跨平台使用时比较重要

    import os
    new_path = os.path.join(old_path,a)

    1.d 移动(复制)文件(目录),移动和复制需要使用库shutil

    复制文件:
        shutil.copyfile("oldfile","newfile") # oldfile和newfile都只能是文件
        shutil.copy("oldfile","newfile") # oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
    复制文件夹:
        shutil.copytree("olddir","newdir") # olddir和newdir都只能是目录,且newdir必须不存在
    
    移动文件(目录)
        shutil.move("oldpos","newpos")   
    删除文件
        os.remove("file")
    删除目录
        os.rmdir("dir")只能删除空目录
        shutil.rmtree("dir")    空目录、有内容的目录都可以删
    转换目录
        os.chdir("path")   换路径

    2. 文件的创建与读取

    2.1 文件的创建

    import os
    os.mknod("a.txt") # 创建空文件,文件名称为a.txt

    2.2 文件的读取

    import os
    with open(file_name, 'rb') as file: #用with + as 的模式避免未关闭文件而造成的内存浪费以及用简短的名称来代替打开的文件,'b'为只读二进制形式打开
        a = file.read(20) # 打开的文件作为数据流,有很多种操作方法。

    2.2.1 文件的打开模式

    模式名称模式详解
    w以写方式打开
    a以追加模式打开 (从 EOF 开始, 必要时创建新文件)
    r+以读写模式打开
    w+以读写模式打开 (参见 w )
    a+以读写模式打开 (参见 a )
    rb以二进制读模式打开
    wb以二进制写模式打开 (参见 w )
    ab以二进制追加模式打开 (参见 a )
    rb+以二进制读写模式打开 (参见 r+ )
    wb+以二进制读写模式打开 (参见 w+ )
    ab+以二进制读写模式打开 (参见 a+ )

    2.2.2 文件流的操作方法

    操作方法名称方法详解
    fp.read([size])size为读取的长度,以byte为单位
    fp.readline([size])读一行,如果定义了size,有可能返回的只是一行的一部分
    fp.readlines([size])把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。
    fp.write(str)把str写到文件中,write()并不会在str后加上一个换行符
    fp.writelines(seq)把seq的内容全部写到文件中(多行一次性写入)。这个函数也只是忠实地写入,不会在每行后面加上任何东西。
    fp.close()关闭文件。python会在一个文件不用后自动关闭文件,不过这一功能没有保证,最好还是养成自己关闭的习惯。 如果一个文件在关闭后还对其进行操作会产生ValueError
    fp.flush()把缓冲区的内容写入硬盘
    fp.fileno()返回一个长整型的”文件标签“
    fp.isatty()文件是否是一个终端设备文件(unix系统中的)
    fp.tell()返回文件操作标记的当前位置,以文件的开头为原点
    fp.next()返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。
    fp.seek(offset[,whence])将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
    fp.truncate([size])把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。
    展开全文
  • Python文件、文件夹操作总结

    万次阅读 2020-06-27 00:43:20
    Python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块 得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个...
  • if not os.path.exists('filename/'): #判断所在目录下是否有该文件名的文件夹 os.mkdirs('filename/test.txt') #创建多级目录用mkdirs,单击目录mkdir else: if os.path.exists('file'): print('the file e...
  • python判断文件和文件夹是否存在、创建文件夹 本文转载自https://www.cnblogs.com/hushaojun/p/4533241.html &gt;&gt;&gt; import os &gt;&gt;&gt; os.path.exists('d:/assist') True ...
  • java实现文件夹压缩

    千次阅读 2019-05-08 19:56:30
    java实现包含文件的文件夹ZIP压缩,总结如下: 解决中文乱码的问题,ZipOutputStream用org.apache.tools.zip.(而不是用java.util.zip.),指定编码为GBK; ZipEntry的setTime(long long)方法可以设置压缩文件或...
  • python os 文件文件夹操作

    千次阅读 2018-06-13 10:57:02
    1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()2.返回指定目录下的所有文件和目录名:os.listdir()3.函数用来删除一个文件:os.remove()4.删除多个目录:os.removedirs(r“c:\py...
  • PHP中常见的文件夹操作以及文件操作函数
  • python判断文件和文件夹是否存在、创建文件夹 >>> import os >>> os.path.exists('d:/assist') True >>> os.path.exists('d:/assist/getTeacherList.py') True >>> os....
  • js 操作文件和文件夹

    千次阅读 2014-01-22 09:03:07
    js 操作文件和文件夹
  • ·如果当前文档和目标文档所在文件夹位置平行,则书写为: 文件夹名称/目标文档全称. ·如果当前文档所在的文件夹和目标文档位置平行,则书写为: …/目标文档全称. ·根相对路径: 从站点根目录开始的路径...
  • python 文件及文件夹操作

    千次阅读 2018-01-03 21:09:12
    Python中对文件和文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. IO:input / output stream(输入输出流) 文件(file)/文件夹(directory)的操作: 创建,删除,拷贝 文件内容的操作: 读取:从硬盘到内存 ...
  • 但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回...
  • Python获取文件夹的上一级路径

    万次阅读 2018-10-18 19:16:30
    但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回...
  • C# 文件和文件夹的操作

    千次阅读 2012-11-29 08:36:20
    本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件、指定文件夹下 面的所有内容copy到目标文件夹下面、指定文件夹下面的所有内容Detele...
  • Python_文件,文件夹,和目录命令

    千次阅读 2018-08-16 11:25:49
    Python中对文件、文件夹操作时经常用到的os模块和shutil模块...1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 2.返回指定目录下的所有文件和目录名:os.listdir() 3.函数用来删除一个文件:os.r...
  • python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一...
  • 使用glob方法遍历文件夹下所有文件

    万次阅读 2015-08-23 23:25:26
    遍历文件夹下所有文件,一般可以使用opendir与readdir方法来遍历。如使用glob方法来遍历则可以简化代码。本文将介绍如何使用glob方法快速遍历文件夹
  • Linux文件、文件夹的r、w、x权限含义

    千次阅读 2017-10-26 09:15:28
    众所周知,文件、文件夹是Linux极为重要的概念,每个文件、文件夹都有权限(读r、写w、执行x) PS:本文中,“文件夹”和“目录”是等同概念 例1:  -rw-r-xr--. 1 root group 2 10月 26 09:12 file1.txt ...
  • 17.2.28 python 移动文件或文件夹操作

    千次阅读 2017-02-28 18:28:09
    python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法。 1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 2.返回指定目录下的所有文件和目录名:os.listdir() 3.函数用来删除一个...
  • python对文件或文件夹操作命令汇总

    千次阅读 2019-01-16 20:43:53
    在学习python中常常需要对文件或者文件夹进行相关操作,今天查阅了网上资料整理汇总了如下的常用方法。 目录: 1、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法 2、文件操作方法大全 3、...
  • Python文件操作及文件夹遍历

    万次阅读 2013-12-07 23:44:09
    得到当前工作目录,即当前Python脚本工作的目录路径 os.listdir() 返回指定目录下的所有文件和目录名 os.remove()  函数用来删除一个文件 os.removedirs(r“c:\python”)删除多个目录 os.path.isfile() ...
  • Python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数...
  • 文章转载自:http://apps.hi.baidu.com/share/detail/34012598首先当然是要安装samba了,呵呵:sudo apt-get install sambasudo apt-get install smbfs下面我们来共享群组可读写文件夹,假设你要共享的文件夹为: /...
  • 巧用批处理快删空文件夹

    千次阅读 2006-04-20 13:10:00
    巧用批处理快删空文件夹什么工具能寻找和删除硬盘上所有空的文件夹,或只包含空的子文件夹文件夹?杀鸡焉用宰牛刀,其实不用任何软件,直接使用批处理命令就能实现这个目的。 第一步:进入Windows的MS-DOS窗口...
  • 那是因为你在这个盘的根目录执行了checkout操作,SVN把这个盘整个作为了一个版本库的本地副本,那些文件夹上的问号表示未被SVN控制要解决这个文件最简单的办法是找到这个盘根目录下有个.svn的隐藏文件夹,删除这个...
  • * browseFolder.js * 该文件定义了BrowseFolder()函数,它将提供一个文件夹选择对话框 * 以供用户实现对系统文件夹选择的功能 * 文件夹选择对话框起始目录由 * Shell.BrowseForFolder(WINDOW_HANDLE, Message, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,943
精华内容 27,177
关键字:

当前文件夹标记表示