zoukankan      html  css  js  c++  java
  • python语法的一些问题1

    open 文件操作

    python strip()函数

    .read()  、readline()与readlines()

    split()函数

    一、open 文件操作

    open/文件操作
    f=open('/tmp/hello','w')

    #open(路径+文件名,读写模式)

    #读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式

    如:'rb','wb','r+b'等等

    读写模式的类型有:

    rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
    w     以写方式打开,
    a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)
    r+     以读写模式打开
    w+     以读写模式打开 (参见 w )
    a+     以读写模式打开 (参见 a )
    rb     以二进制读模式打开
    wb     以二进制写模式打开 (参见 w )
    ab     以二进制追加模式打开 (参见 a )
    rb+    以二进制读写模式打开 (参见 r+ )
    wb+    以二进制读写模式打开 (参见 w+ )
    ab+    以二进制读写模式打开 (参见 a+ )


    注意:

    1、使用'W',文件若存在,首先要清空,然后(重新)创建,

    2、使用'a'模式 ,把所有要写入文件的数据都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,将自动被创建。

    f.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(空字串)

    file.readline() 返回一行

    file.readline([size]) 返回包含size行的列表,size 未指定则返回全部行

    for line in f: print line #通过迭代器访问

    f.write("hello ") #如果要写入字符串以外的数据,先将他转换为字符串.

    f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).

    f.seek(偏移量,[起始位置])

    用来移动文件指针

    偏移量:单位:比特,可正可负

    起始位置:0-文件头,默认值;1-当前位置;2-文件尾

    f.close() 关闭文件

    二、python strip()函数

    声明:s为字符串,rm为要删除的字符序列

    s.strip(rm)        删除s字符串中开头、结尾处,位于 rm删除序列的字符

    s.lstrip(rm)       删除s字符串中开头处,位于 rm删除序列的字符

    s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符

    注意

    1. 当rm为空时,默认删除空白符(包括' ', ' ',  ' ',  ' ')

    例如:

    image

    2.这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。

    image

    三、.read()  、readline()与readlines()

    .readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。

    .readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。

    通过readline输出,对于比较大的文件,这种占用内存比较小。  
    #coding:utf-8  
      
    f = open('poem.txt','r')  
    result = list()  
    for line in open('poem.txt'):  
        line = f.readline()  
        print line  
        result.append(line)  
    print result  
    f.close()                  
    open('result-readline.txt', 'w').write('%s' % '
    '.join(result))
    通过readline输出,对于比较大的文件,这种占用内存比较小。  
    #coding:utf-8  
      
    f = open('poem.txt','r')  
    result = list()  
    for line in open('poem.txt'):  
        line = f.readline()  
        print line  
        result.append(line)  
    print result  
    f.close()                  
    open('result-readline.txt', 'w').write('%s' % '
    '.join(result))

    四、split()函数

    1、常用实例
     
    >>> u = "www.doiido.com.cn"
      
    #使用默认分隔符
    >>> print u.split()
    ['www.doiido.com.cn']
      
    #以"."为分隔符
    >>> print u.split('.')
    ['www', 'doiido', 'com', 'cn']
      
    #分割0次
    >>> print u.split('.',0)
    ['www.doiido.com.cn']
      
    #分割一次
    >>> print u.split('.',1)
    ['www', 'doiido.com.cn']
      
    #分割两次
    >>> print u.split('.',2)
    ['www', 'doiido', 'com.cn']
      
    #分割两次,并取序列为1的项
    >>> print u.split('.',2)[1]
    doiido
      
    #分割最多次(实际与不加num参数相同)
    >>> print u.split('.',-1)
    ['www', 'doiido', 'com', 'cn']
      
    #分割两次,并把分割后的三个部分保存到三个文件
    >>> u1,u2,u3 = u.split('.',2)
    >>> print u1
    www
    >>> print u2
    doiido
    >>> print u3
    com.cn
     
    
    
     2、去掉换行符
    >>> c = '''say
    hello
    baby'''
      
    >>> print c
    say
    hello
    baby
      
    >>> print c.split('
    ')
    ['say', 'hello', 'baby']
     
    
    3、分离文件名和路径
     >>> import os
    >>> print os.path.split('/dodo/soft/python/')
    ('/dodo/soft/python', '')
    >>> print os.path.split('/dodo/soft/python')
    ('/dodo/soft', 'python')
     
    
    4、一个超级好的例子
      
    >>> str="hello boy<[www.doiido.com]>byebye"
      
    >>> print str.split("[")[1].split("]")[0]
    www.doiido.com
      
    >>> print str.split("[")[1].split("]")[0].split(".")
    ['www', 'doiido', 'com']
  • 相关阅读:
    喜马拉雅第三方客户端开发(接口和接口数据解析)。
    jquery-easyui中datagrid扩展,隐藏显示表头功能
    backbone ,jQuery-easyui,knockoutjs的整合使用
    WPF中的瀑布流布局(TilePanel)控件
    使用this.$refs['formName'].resetFields()无法重置表单
    js获取json对象的key值
    Hash表算法详解
    Redis入门
    ASP.Net 下载大文件的实现
    后端生成二维码
  • 原文地址:https://www.cnblogs.com/blueyyc/p/5676900.html
Copyright © 2011-2022 走看看