zoukankan      html  css  js  c++  java
  • 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





          

            

    谢谢
  • 相关阅读:
    利用dockerfile定制镜像
    发布Docker 镜像到dockerhub
    Docker 停止容器
    133. Clone Graph
    132. Palindrome Partitioning II
    131. Palindrome Partitioning
    130. Surrounded Regions
    129. Sum Root to Leaf Numbers
    128. Longest Consecutive Sequence
    127. Word Ladder
  • 原文地址:https://www.cnblogs.com/hyit/p/5129969.html
Copyright © 2011-2022 走看看