• Python之路【第二篇】:Python基础(二)


    windows的换行符:

    linux的换行符:

    文件的数据处理:

    r 以只读模式打开文件(默认模式)
    w 以只写模式打开文件
    a 以追加模式打开文件


    r+b 以读写模式打开文件(以读/写方式打开一个已存在的文件)
    w+b 以写读模式打开文件(以读/写方式建立一个新的文本文件,如果文件存在,w+会自动把已有文件的内容清空。)
    a+b 以追加及读模式打开文件

    r、r+把字符指针放到开头

    b:以二进制形式打开文件,解决了windows和linux换行符不一致的问题

    f = file('/etc/passwd.bak','r') 等效于 f = file('/etc/passwd.bak')

    f = file('/etc/passwd.bak','r')
    for line in f.readlines():
      line = line.strip('
    ').split(':')
      print line
    

    f.readlines生成的是一个列表,f.read

    f = file('/etc/passwd.bak','r')
    for line in f.readlines():
      line = line.strip('
    ').split(':')[0]
      print line
    

    常见文件方法:

    readlines、xreadlines、next、f.read、close、closed、seek、tell、write、writelines、mode、name 、flush、closed、truncate  

    >>> f = file('/etc/passwd.bak','r')
    >>> f.name
    '/etc/passwd.bak'
    

     read生成的是一个字符串,readlines生成的是一个列表

    >>> f.read()
    'root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
    saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    '
    

     seek:改变文件内字符指针的位置,tell告诉文件内字符指针的位置

    >>> f.seek(0)
    >>> f.tell()
    0L
    >>> f.seek(300)
    >>> f.tell() 300L
    >>> f.seek(61)
    >>> f.readline()
    'gin
    '
    

     检查文件是否关闭

    >>> f.closed
    False
    

     truncate:从文件开头开始截取n个字节

    >>> f = file('/etc/passwd.bak','r+')
    >>> f.truncate(5)
    >>> f.close()
    [root@hy tmp]# more /etc/passwd.bak
    root:
    

     xreadlines:写进内存一行,读一行,使用大文件,readlines将文件全部写入内存然后读文件

    字符串处理

    find  查找字符串
    index   字符串索引值
    capitalize   首字母大写
    lower  转小写
    upper  转大写
    swapcase 大小写转换
    split  string转list,按指定符号分割
    join   list转string,按指定符号连接
    len  字符串长度
    cmp  比较首字符对应的ASCII大小,数字直接比较大小
    max   ASCII最大的字符
    min   ASCII最小的字符
    startwith 以某些字符开头


    >>> msg = "what's your company's name?"
    >>> msg.find('name')
    22

    >>> msg.index('name')
    22


    >>> msg.capitalize()
    "What's your company's name?"

    >>> msg.split()
    ["what's", 'your', "company's", 'name?']
    >>> msg.split("'")
    ['what', 's your company', 's name?']


    >>> msg_list = msg.split("'")
    >>> msg_list
    ['what', 's your company', 's name?']
    >>> '|'.join(msg_list)
    'what|s your company|s name?'


     >>> len(msg)
    27

    >>> x,y=1,2
    >>> cmp(x,y)
    -1
    >>> cmp(y,x)
    1
    >>> x,y='A2','a1'
    >>> cmp(x,y)
    -1

     >>> x='12aA'
    >>> min(x)
    '1'
    >>> max(x)
    'a'

    >>> x.startswith('1')
    True
    >>> x.startswith('2')
    False

     list VS dict

    dict:查找和插入速度快,但耗内存,无序

    list:查找和插入的时间随着元素的增加而增加,浪费内存少,有序

     set:无序,元素不重复,作用:关系测试;去重

    >>> x={1,2,3,4}
    >>> y={3,4,5,6}
    >>> x&y
    set([3, 4])
    >>> x|y
    set([1, 2, 3, 4, 5, 6])
    >>> x^y
    set([1, 2, 5, 6])
    >>> x-y
    set([1, 2])

    >>> z={1,2,4}
    >>> z.issubset(x)
    True
    >>> x.issuperset(z)
    True





          

            

    谢谢
  • 相关阅读:
    求100-999之间所有的水仙花数
    验证用户密码程序
    【bzoj2002】[Hnoi2010]Bounce 弹飞绵羊 分块/LCT
    【bzoj1070】[SCOI2007]修车 最小费用流
    【bzoj3669】[Noi2014]魔法森林 Kruskal+LCT
    【bzoj3668】[Noi2014]起床困难综合症 贪心
    【bzoj1391】[Ceoi2008]order 网络流最小割
    【bzoj4873】[Shoi2017]寿司餐厅 最大权闭合图
    【bzoj1180】[CROATIAN2009]OTOCI LCT
    【bzoj3282】Tree LCT
  • 原文地址:https://www.cnblogs.com/hyit/p/5129969.html
Copyright © 2020-2023  润新知