python文件读写的重难点_Python学习笔记8—文件读写

文件与文件路径

1)Windows上的倒斜杠和os x及Linux上的正斜杠

在Windows上,写路径时使用倒斜杠作为分隔符

os x和Linux上,使用正斜杠作为分隔符

2)当前工作目录

当前工作目录--------cwd(current working directory)

os.gecwd()---------获得当前工作目录的字符串

os.chdir()---------改变当前工作目录

33887e6f7c70

3)绝对路径与相对路径

绝对路径:从根目录开始

相对路径:相对于程序的当前目录

点(.)文件夹:当前目录

点点(..)文件夹:父文件夹

如下图:bacon文件夹为当前工作目录

33887e6f7c70

思考:

若当前工作目录为C:\bacon\spam.txt,

则C:\spam.txt的相对路径就表示为..\..\spam.txt

4)使用os.makedirs()创建新文件夹

33887e6f7c70

33887e6f7c70

5)os.path模块

os.path模块包含了许多与文件名和文件路径相关的有用函数。

6)处理绝对路径和相对路径

os.path 模块提供了一些函数,返回一个相对路径的绝对路径,以及检查给定的路径是否为绝对路径。

调用os.path.abspath(path)将返回参数的绝对路径的字符串。这是将相对路径转换为绝对路径的简便方法。

调用os.path.isabs(path),如果参数是一个绝对路径,就返回True,如果参数是一个相对路径,就返回False。

33887e6f7c70

调用os.path.relpath(path, start)将返回从start 路径到path 的相对路径的字符串。如果没有提供start,就使用当前工作目录作为开始路径。

调用os.path.split(path),将返回一个路径的目录名称和基本名称

33887e6f7c70

7)查看文件大小和文件夹内容

调用os.path.getsize(path)将返回path 参数中文件的字节数。

调用os.listdir(path)将返回文件名字符串的列表,包含path 参数中的每个文件(请注意,这个函数在os模块中,而不是os.path)。

33887e6f7c70

8)检查路径有效性

如果path参数所指的文件或文件夹存在,调用os.path.exists(path)将会返回True,否则返回FALSE

如果path参数参数存在,且是一个文件,调用os.path.isfile(path)将会返回True,否则返回FALSE

如果path参数参数存在,且是一个文件夹,调用os.path.isdir(path)将会返回True,否则返回FALSE

33887e6f7c70文件读写过程

主要涉及纯文本文件

在Python 中,读写文件有3 个步骤:

1)调用open()函数,返回一个File 对象。

传入open方法的文件路径可以是绝对路径,也可以是相对路径

demofile = open('F:\\delicious\\demo.txt')

demofile = open('F:\\delicious\\demo.txt','r')

两种形式等价,为“读模式”,以读模式打开,不能对文件内容做写入和修改操作

demofile = open('F:\\delicious\\demo.txt','w')

这种模式以“写模式”打开,写模式将覆盖原有文件

demofile = open('F:\\delicious\\demo.txt','a')

这种模式以“添加模式”打开,添加模式在已有文件末尾添加文本

2)调用File 对象的read()或write()方法。

读取文件内容,调用file对象的read()

有两种方法;read()按字符读取,将整个文件读取为一个字符串值

helloContent = helloFile.read() >>> helloContent 'Hello world!'

readline()按行读取,将整个文件通过换行符读取为一个字符串列表

sonnetFile.readlines()

写入文件,调用file对象的write方法

有两种模式:写模式——直接复写文件

demofile = open('F:\\delicious\\demo.txt','w')

demofile.write('Hello world!\n')

添加模式——在文件末尾添加文本

demofile = open('F:\\delicious\\demo.txt','a')

demofile.write('Bacon is not a vegetable.')

PS:

write()方法不会像print()函数那样,在字符串的末尾自动添加换行字符。必须自己添加该字符。

如果传递给open()的文件名不存在,写模式和添加模式都会创建一个新的空文件。在读取或写入文件后,调用close()方法,然后才能再次打开该文件。

3)调用File 对象的close()方法,关闭该文件。

baconFile.close()

33887e6f7c70

3.用shelve 模块保存变量

1)shelve类似于一个key-value数据库,可以很方便的用来保存Python的内存对象,其内部使用pickle来序列化数据,简单来说,使用者可以将一个列表、字典、或者用户自定义的类实例保存到shelve中,下次需要用的时候直接取出来,就是一个Python内存对象,不需要像传统数据库一样,先取出数据,然后用这些数据重新构造一遍所需要的对象。

33887e6f7c70

2)调用函数shelve.open()并传入一个文件名,然后将返回的值保存在一个变量中。可以对这个变量的shelf 值进行修改,就像它是一个字典一样。当你完成时,在这个值上调用close()。

3)在Windows 上运行前面的代码,你会看到在当前工作目录下有3 个新文件:mydata.bak、mydata.dat 和mydata.dir

4)就像字典一样,shelf 值有keys()和values()方法,返回shelf 中键和值的类似列表的值。因为这些方法返回类似列表的值,而不是真正的列表,所以应该将它们传递给list()函数,取得列表的形式。

33887e6f7c70

4.用pprint.pformat()函数保存变量

33887e6f7c70

33887e6f7c70

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值