数据蛙就业班

python操作文件及os模块相关

2020-01-19  本文已影响0人  卅清

1.open函数,可以打开一个已经存在的文件,或者创建一个新文件

open(文件名,访问模式),注意默认encoding是gbk,如果文件编码是utf8,

open(文件名,访问模式,encoding='utf8')

访问模式:

r:以只读的方式打开文件,文件的指针放在文件的开头

w:打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a:以追加的方式打开文件并写入内容,也就是说文件指针将会放在文件的结尾,如果该文件不存在,创建新文件进行写入。

rb:以二进制格式打开一个文件用于只读。wb,ab同理。

r+:给r模式增加了写入的功能

w+:给w模式增加了读出的功能

a+:给a模式增加了读出的功能

2.写数据

使用write()可以完成向文件写入数据。

f = open("test.txt",'w')

f.write("lalalla"+'\n'+"hahahaha")

f.close()

3.读数据

read函数,read(num),num,从文件中读取的数据的长度(单位是字节),后面读取的数据是从上次读完后的位置开始的,如果不传入,就默认读出全部数据。

f1 = open("test.txt",'r')

f1.read(2)

'la'

f1.read(9)

'lalla\nhah'

readlines函数,可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素

readline函数:读取文件中一行的数据,后面读取的数据是从上次读完后的位置开始的。

4.close函数,关闭文件

5.获取在当前文件中指针读写的位置

tell函数,在close函数之前。

f = open("test.txt", "r")

    str = f.read(3)

    print("读取的数据是 : ", str)

    # 查找当前位置

    position = f.tell()

    print("当前文件位置 : ", position)

    str = f.read(3)

    print("读取的数据是 : ", str)

    # 查找当前位置

    position = f.tell()

    print("当前文件位置 : ", position)

    f.close()

读取的数据是 :  lal

当前文件位置 :  3

读取的数据是 :  all

当前文件位置 :  6

6.定位到某个位置

seek(offset, from)有2个参数

offset:偏移量

from:方向

0:表示文件开头

1:表示当前位置

2:表示文件末尾 

f = open("test.txt", "r")

print(f.tell())

print(f.seek(5,0))

print(f.tell())

0

5

5

7.os.rename("老文件名","新文件名") 重命名文件名

8.os.remove("删除文件名")  删除文件

os.removedirs('dirname1')若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推

9. os.mkdir("张三") 创建文件夹

10. os.getcwd() 获取当前目录

11. os.chdir("test") ,目录切换

12.os.listdir(),获取当前文件列表,包括文件夹,文件名。

13.os.rmdir("待删除文件夹")  删除文件夹,目录非空不能使用 

import shutil

shutil.rmtree("待删除文件夹"),删除非空目录

14.os.walk(top, topdown=True, onerror=None, followlinks=False)用来遍历一个目录内各个子目录和子文件。

top 是你所要便利的目录的地址

topdown 为真,则优先遍历top目录,否则优先遍历top的子目录(默认为开启)

onerror 需要一个 callable 对象,当walk需要异常时,会调用

followlinks 如果为真,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录(默认关闭)

os.walk 的返回值是一个生成器(generator),也就是说我们需要不断的遍历它,来获得所有的内容。

得到一个三元tupple(dirpath, dirnames, filenames)

第一个为起始路径,第二个为起始路径下的文件夹列表,第三个是起始路径下的文件列表。

for root,dirs,files in os.walk("test"):

    print(root) 

    print(dirs) 

    print(files)

test

['t']

['t.txt']

test\t

[]

['t1.txt']

15.os.sep  主要用于系统路径中的分隔符.windows下是'\\',linux是'/'

os.sep

'\\'

16.os.chmod 更改文件或目录的权限。

os.chmod(path, mode),

17.Os.path.abspath(path) 返回文件绝对路径(有文件名)

18.os.path.dirname(path),返回文件路径

os.path.dirname("test/t.txt")

'test'

19.os.path.join(path1[,path2[,……]]), 将多个路径组合后返回

os.path.join(os.getcwd(),"ppp.txt")

'C:\\test\\ppp.txt'

20.os.path.split(path) 

将path分割成目录和文件名二元组返回。 

os.path.split("test/t.txt")

('test', 't.txt')

21.os.path.basename(),返回文件名

os.path.basename("test/t.txt")

't.txt'

22.os.path.exists(path) 

如果path存在,返回True;如果path不存在,返回False。

os.path.exists("ttttt")

False

23.os.path.isabs/isdir/isfile(path)

如果path是一个存在的绝对路径/文件夹/文件,返回True。否则返回False。

24.os.path.getsize(path) 返回path的文件的大小(字节)

os.path.getsize("test/t.txt")

72

25.os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间。

26.os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间

27.os.system("bash command")  运行shell命令,直接显示

上一篇下一篇

猜你喜欢

热点阅读