一、输出重定向到文件

  1. >>> with open('/home/f/py_script/passwd', 'rt+') as f1:
  2. ... print('Hello Dog!', file=f1)
  3. ...

二、参数列表的分拆

  当你要传递的参数已经是一个列表,但要调用的函数却接受分开一个个的参数值,这时候你要把已有的列表拆开来

  1. >>> l
  2. ['cat', 1, 2, 3, 4]
  3. >>> print(*l, sep=',') #更优雅的实现
  4. cat,1,2,3,4
  5. >>> print(','.join(str(x) for x in l))
  6. cat,1,2,3,4

  以同样的方式,可以使用 ** 操作符分拆关键字参数为字典:

  1. >>> def test(a, b, c='xxx'):
  2. ... print(a, b, c)
  3. ...
  4. >>> d = {'a': 'dog', 'b': 'cat', 'c': 'horse'}
  5. >>> test(**d) #以字典的values为参数
  6. dog cat horse
  7. >>> test(*d) #以字典的keys为参数
  8. b c a
  9. >>> test(*d.items()) #以字典的items为参数
  10. ('b', 'cat') ('c', 'horse') ('a', 'dog')

三、禁止输出换行符

  1. >>> for x in a:
  2. ... print(x)
  3. ...
  4. 1
  5. 2
  6. 3
  7. 4
  8. >>> for x in a:
  9. ... print(x, end=' ')
  10. ...
  11. 1 2 3 4

四、避免写入操作覆盖已有文件:open('/path/to/file', 'xt+')

  1. >>> with open('/home/f/py_script/passwdtestsx', 'x+') as f:
  2. ... print('just a test!!', file=f)
  3. ...
  4. >>> with open('/home/f/py_script/passwdtestsx', 'x+') as f:
  5. ... f.write('test once more!')
  6. ...
  7. Traceback (most recent call last):
  8. File "<stdin>", line 1, in <module>
  9. FileExistsError: [Errno 17] File exists: '/home/f/py_script/passwdtestsx'

五、读写压缩的数据文件:gzip与bz2模块

  1. >>> with gzip.open('/home/f/testdir/tmp.sh.gz', 'rt') as f:
  2. ... f.readline()
  3. ...
  4. '#!/bin/bash\n'

#gzip.open()、bz2.open()的操作方式与open()一致,但默认是以二进制格式打开,即:[rwx]b[+]

六、处理路径名称:os.path.basename()、os.path.dirname()

  1. >>> os.path.basename('/etc/fstab')
  2. 'fstab'
  3. >>> os.path.dirname('/etc/fstab')
  4. '/etc'

七、检测文件是否存在

  1. os.path.isdir
  2. os.path.isfile
  3. os.path.islink
  1. >>> os.path.realpath('/etc/mtab') #若为软链接,则显示其指向的真实路径
  1. '/proc/3079/mounts'
  1. os.path.exists
  2. os.path.getsize #获取文件大小
  3. os.path.getctime
  4. os.path.getmtime
  1. >>> os.path.getatime('/etc/mtab') #最近访问时间,默认显示自1970-01-01到当前时间的秒数
  1. 1470885109.0129082
    >>> import time
    >>> time.ctime(os.path.getatime('/etc/mtab')) #转换时间格式
    'Thu Aug 11 11:11:49 2016'

八、获取目录内容的列表:os.listdir()、os.path.join('', '', ''...)

  1. #显示子目录列表
    >>> [file for file in os.listdir('/home/f') if os.path.isdir(os.path.join('/home/f',file))]
  2. ['.pki', '.ssh', '.links', '.config', '.gnupg', '.vim', 'book', '.dbus', 'Public', 'Downloads']
  3. #显示文件列表
    >>> [file for file in os.listdir('/home/f') if os.path.isfile(os.path.join('/home/f',file))]
  4. ['.serverauth.1216', '.nvidia-settings-rc', '.xscreensaver', '.xinitrc', '.bashrc', '.bash_history']

Python3 From Zero——{最初的意识:005~文件和I/O}的更多相关文章

  1. Python3 From Zero——{最初的意识:000~Initial consciousness}

    http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 a.编码 默认情况下,Python ...

  2. Python3 From Zero——{最初的意识:008~初级实例演练}

    一.构显国际橡棋8x8棋盘 #!/usr/bin/env python3 #-*- coding:utf-8 -*- color_0="\033[41m \033[00m" col ...

  3. Python3 From Zero——{最初的意识:006~数据编码与处理}

    一.读写CSV数据: #!/usr/bin/env python3 #-*- coding=utf8 -*- import csv with open('kxtx.csv', 'rt') as f: ...

  4. Python3 From Zero——{最初的意识:002~字符串和文本}

    一.使用多个界定符分割字符串 字符串.split(',')形式只适用于单一分割符的情况:多分割符同时应用的时候,可使用re.split() >>> line = 'asdf fjdk ...

  5. Python3 From Zero——{最初的意识:007~函数}

    一.编写可接受任意数量参数的函数:*.** >>> def test(x, *args, y, **kwargs): ... pass ... >>> test(1 ...

  6. Python3 From Zero——{最初的意识:004~迭代器和生成器}

    一.反向迭代:reversed() >>> a [1, 2, 3, 4] >>> for x in reversed(a): ... print(x, end=' ...

  7. Python3 From Zero——{最初的意识:003~数字、日期、时间}

    一.对数值进行取整:round(value,ndigits) >>> round(15.5,-1) #可以取负数 20.0 >>> round(15.5,0) #当 ...

  8. Python3 From Zero——{最初的意识:001~数据结构和算法}

    一.从队列两端高效插入.删除元素,及保留固定数量的数据条目: collections.deque([iterable[,maxlen=N]]) a = collections.deque([1, 2] ...

  9. 运行python “没有那个文件或目录3” 或 “/usr/local/bin/python3^M: bad interpreter: 没有那个文件或目录” 错误

    原因 如果使用的是#!/usr/local/bin/python3这种方式,就会出现 “/usr/local/bin/python3^M: bad interpreter: 没有那个文件或目录” 错误 ...

随机推荐

  1. Hbase表类型的设计

    HBase表类型的设计 1.短宽 这种设计一般适用于: * 有大量的列 * 有很少的行 2.高瘦 这种设计一般适用于: * 有很少的列 * 有大量的行 3.短宽-高瘦的对比 短宽 * 使用列名进行查询 ...

  2. SVG和canvas

    1.SVG实现的圆环旋转效果 参考:http://www.softwhy.com/article-6472-1.html 2.SVG中的图形可以通过  transform="matrix(0 ...

  3. KMP算法 (字符串的匹配)

    视频参考 对于正常的字符串模式匹配,主串长度为m,子串为n,时间复杂度会到达O(m*n),而如果用KMP算法,复杂度将会减少线型时间O(m+n). 设主串为ptr="ababaaababaa ...

  4. 13、testng.xml对用例进行分组

    目录如下: TestGroup.java 代码如下: package com.testng.cn; import org.testng.annotations.*; import static org ...

  5. 通过Module读取寄存器的值

    1: int eax; 2: _asm_("nop":"=a"(eax)); 3: printk("Get Eax Value:\n"); ...

  6. 在命令行中运行Hadoop自带的WordCount程序

    1.启动所有的线程服务 start-all.sh 记得要查看线程是否启动 jps 2.在根目录创建 wordcount.txt 文件 放置一些数据 3.创建  hdfs dfs -mkdir /文件夹 ...

  7. JQuery中内容操作函数、validation表单校验

    JQuery:内容体拼接(可以直接拼接元素节点和内容节点) JQuery实现: 方案1:A.append(B); == B.appendTo(A);A的后面拼接B 方案2: A.prepend(B); ...

  8. [BOI2009]Radio Transmission 无线传输

    题目描述 给你一个字符串,它是由某个字符串不断自我连接形成的. 但是这个字符串是不确定的,现在只想知道它的最短长度是多少. 输入输出格式 输入格式: 第一行给出字符串的长度,1 < L ≤ 1, ...

  9. 十分钟学习 react配套的类型检测库——prop-types的运用

    js 有时在定义变量的类型为number 或string 时并不会报错,所以prop-types 是专门用来检测react ,以前的版本是把它放到react架构里面 ,现在作为一个独立的库搬出来了,跟 ...

  10. ASP.NET Core 2.0发布/部署到Ubuntu服务器并配置Nginx反向代理

    原文链接https://www.linuxidc.com/Linux/2017-12/149557.htm ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用AS ...