[入门-9] IO之文件输入和输出

Posted WhateverYoung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[入门-9] IO之文件输入和输出相关的知识,希望对你有一定的参考价值。

文件对象

  • 文件对象 file
  • 类文件对象 file-like
  • 文件只是连续的字符序列

文件内建函数

  • 无论是读取还是写入,换行符都需要程序员自己控制
#open()
file_object = open(filename, access_mode='r',buffering=-1)
filename:文件字符串,相对路径绝对路径都可以
access_mode:'r/w/a/U/b/+'

#file()  直接替换open()
f=file('/var/log/a.txt')=open('/var/log/a.txt')
#通用换行符
UNIX:\\n
Windows:\\r\\n

#内建方法
#输入
#从文件中读取size个字节,默认读取所有字节,作为字符串返回
f.read(size=-1)  

#从文件中读取并返回1行,包括行结束符,或最大返回size个字符,超过size就不完整返回
f.readline(size=-1)

#从文件中读取所有行,做为列表返回,包含所有的行结束符,如果给定参数且大于0,将返回总和大约sizhint字节的行
f.readlines(sizhint=0) 
f.next()

#输出
#将文本数据或二进制的字符串写入文件
f.write(str)

#将字符串列表,或seq是一个可以返回字符串的可迭代对象,写入文件
f.writelines(seq)

#文件内移动
#0:从文件开始,1当前位置,2文件结尾
f.seek(offset, whence=0)
f.tell() #返回当前在文件的位置,从起始算起,以字节计算

#其他
f.fileno()
f.close()
f.flush()
f.isatty()
f.truncate()

#各类特殊符号
os.lineseq  :文件中分隔行的字符
os.sep      :分隔文件路径名的字符串
os.pathsep  :分隔文件路径的字符串
os.curdir   :当前工作路径的字符串名称
os.pardir   :当前目录的父目录字符串名称
print 会自动在末尾添加换行符,不想要的时候,用','

#常用文件迭代
for eachLine in f:
    pass

data = [line.strip() for line in f.readlines()]

文件内建属性

f.closed
f.encoding
f.mode
f.name
f.newlines
f.softspace

##标准文件
sys.stdout
sys.err
sys.stdin

命令行参数

sys.argv
argc=len(sys.argv)
./a.py x y z
#getopt/optparse模块

文件系统

  • 文件
    • mkfifo()/mknod()
    • remove()/unlink()
    • rename()/renames()
    • *stat()
    • syslink()
    • utime()
    • tmpfile()
    • walk()
  • 目录
    • chdir()/fchdir()
    • chroot()
    • listdir()
    • getcwd()/getcwdu()
    • mkdir()/makedirs()
    • rmdir()/removedirs()
  • 访问/权限
    • access()
    • chmod()
    • chown()
    • lchown()
    • umask()
  • 文件描述符操作

    • open()
    • read()/write()
    • dup()/dup2()
  • os.path

    • basename() #文件名
    • dirname() #路径名
    • join() #合成路径名
    • split()
    • splitdrive()
    • splitext()
    • getatime()
    • getctime()
    • getmtime()
    • getsize()
    • exists()
    • isabs()
    • isdir()
    • isfile()
    • islink()
    • ismount()
    • samefile()

永久存储模块

  • pickle, dump(), load(),可以直接把对象保存在文件中cPickle是更快速的c语言编译版本
  • shelve,更智慧的字典存储
  • marshal

相关模块

base64,binascii,bz2,csv,filecmp,fileinput,tempfile
getopt/optparse,glob/fnmatch,gzip/zlib,shutil,tarfile,zipfile,uu,c/StringIO

Reference

Python核心编程

以上是关于[入门-9] IO之文件输入和输出的主要内容,如果未能解决你的问题,请参考以下文章

20145309信息安全系统设计基础第9周学习总结上

IO和流

批处理之命令重定向操作

机器学习入门之----概念

漫谈Java IO之普通IO流与BIO服务器

GPIO入门之闪灯