Skip to content

Latest commit

 

History

History
123 lines (102 loc) · 4.38 KB

pythondui_wen_ben_de_cao_zuo.md

File metadata and controls

123 lines (102 loc) · 4.38 KB

python对文件操作

文件的读取

>>> f=file('contact_list.txt','a')
>>> f.write('\n26\tLizhili\tIt\t2222222222')
>>> f.close
#!/usr/bin/python3
import sys
contact_list='contact_list.txt'
f=file(contact_list)
c=f.readlines()
while True:
    user_input = input('\033[0;31;1m please input sth to search: \033[0m')
    if len(user_input) == 0:
        continue
    for line in c:
        if user_input in line:
            print (line)
        elif user_input == "a" or user_input == "quit":
            sys.exit()
    else:
        print ("\033[1;32m not in world key word! \033[0m")

文件修改和替换

#/usr/bin/python
import fileinput
for line in fileinput.input('user.txt',inplace=1):
    line =line.replace('1',"001")
    print line

Python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。

获取操作系统名字os.name()

如果是posix,说明系统是Linux、Unix或Mac OS X,如果是nt,就是Windows系统。要获取详细的系统信息,可以调用uname()函数

在操作系统中定义的环境变量,全部保存在os.environ这个dict中,可以直接查看

要获取某个环境变量的值,可以调用os.getenv()函数

os.getenv('PATH')

其他函数

  • 得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd()
  • 返回指定目录下的所有文件和目录名:os.listdir()
  • 函数用来删除一个文件:os.remove()
  • 删除多个目录:os.removedirs(r"c:\python")
  • 检验给出的路径是否是一个文件:os.path.isfile()
  • 检验给出的路径是否是一个目录:os.path.isdir()
  • 判断是否是绝对路径:os.path.isabs()
  • 检验给出的路径是否真地存在: os.path.exists()
  • 返回一个路径的目录名和文件名:os.path.split()
  • 分离扩展名:os.path.splitext()
  • 获取路径名:os.path.dirname()
  • 运行shell命令:os.system()
  • 读取和设置环境变量:os.getenv() 与os.putenv
  • 给出当前平台使用的终止符:os.linesep windows使用'\r\n',linux使用'\n' 而mac使用'\r'指示你正在使用的平台:os.name 对于windows,它是'nt',而对于Linux/unix用户而言他是'posix'
  • 重命名:os.rename(old,new)
  • 创建多级目录:os.makedirs(r"c:\python\test")
  • 创建单个目录:os.makedir("test")
  • 删掉一个目录: os.rmdir('testdir')
  • 获取文件属性:os.stat(file)
  • 修改文件权限=与时间戳:os.chmod(file)
  • 终止当前进程:os.exit()
  • 获取文件大小:os.path.getsize(filename)
  • 文件操作:
  • os.mknod("test.txt") 创建空文件
  • fp=open("test.txt",w)直接打开一个文件,如果文件不存在则创建文件
  • open模式
  • w 写方式打开
  • a 以追加模式打开(从EOF开始,必要时创建新文件)
  • r+ 以读写模式打开
  • w+ 以读写模式打开 (参见w)
  • a+ 以读写模式打开 ( 参见a)
  • rb 以二进制读模式打开
  • wb 以二进制写模式打开
  • fp.read([size]) #size位读取的长度,以byte为单位
  • fp.readline([size]) #把文件没一行作为一个list的一个成员,并返回这个list。
  • 其实他的内部是通过循环调用readline()来实现的。如果提供size参数,size是读取内容的总长,也就是说可能只读到文件的一部分。
  • fp.write(str) #把str写到文件中,write()并不会在str后加上一个换行符。写入utf8例如:
  • fp.write(str.encode('utf-8'))
  • fp.writelines(seq) #把seq的内容全部写到文件中(多行一次性写入)。这个函数也只是忠实的写入,不会在每行后面加上任何东西。
  • fp.close()
  • 这一功能没有保证,最好还是养成自己关闭的习惯。如果一个文件在关闭后还对其操作会产生valueerror
  • fp.flush() #把缓冲区的内容写入到磁盘
  • fp.fileno()#返回一个长整形的“文件标签”
  • fp.isatty()#文件是否是一个终端设备文件
  • fp.tell()#返回文件操作标记的当前位置,以文件的开头为原点。
  • fp.truncate([size]) 截取文件大小

**文件处理的分割
**

f = file('test.txt','r')
f.readline().strip('\n').split()
#split() 列表
#去掉结尾换行符、空格分割。

当文件被读取的时候,这时也被写入,可以通过read()读取刚刚写入的内容。

例如:

f=open('file.txt',rw)
f.read\(\)