我是靠谱客的博主 受伤煎蛋,最近开发中收集的这篇文章主要介绍文件的读写读写文件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 读写文件
    • 文件与文件路径
    • 寻找路径常用函数
      • 判断路径有效项
    • 绝对路径和相对路径
      • 处理绝对路径和相对路径
    • 文件读写
      • 读写文件
      • 用shelve模式保存变量

读写文件

文件与文件路径

在这里插入图片描述
在Windows中,根文件名位C:==,也称C:盘。在OS X和Linux中,根文件夹是/
附加卷,例如USB闪存驱动器,在不同操作系统上显示也不同。在Windows中,表示为带字符的根驱动器,例如
D:==。在OS X和Linux上,表示为新的文件夹,OS X在==/Volumes文件夹下,Linux在/mnt文件夹下。要注意文件夹名称和文件名在windows和os x上不区分大小写,但在Linux上区分。
且windows上路径上文件夹之间的分隔符是
倒斜杠==,而后两者是正斜杠

寻找路径常用函数

1.os.path.join()

>>> import os
>>> os.path.join('usr', 'bin', 'spam')
'usr\bin\spam'

(注意倒斜杠有两个,因为每个倒斜杠需要由另一个倒斜杠来转义)

2.==os.getcwd()==取得当前工作目录
==os.chdir()==改变当前工作目录

>>> import os
>>> os.getcwd()
'C:\Python34'
>>> os.chdir('C:\Windows\System32')
>>> os.getcwd()
'C:\Windows\System32'

3.==os.makedirs()==创建新文件夹

>>> import os
>>> os.makedirs('C:\delicious\walnut\waffles')

在这里插入图片描述
4.==os.path.dirname(path)==返回path参数中最后一个斜杠之前的所有内容
5.==os.path.basename(path)==返会path参数中最后一个斜杠之后的所有内容

>>> path = 'C:\Windows\System32\calc.exe'
>>> os.path.basename(path)
'calc.exe'
>>> os.path.dirname(path)
'C:\Windows\System32'

6.==os.path.split(path)==可以同时获得上面二者的元组

>>> calcFilePath = 'C:\Windows\System32\calc.exe'
>>> os.path.split(calcFilePath)
('C:\Windows\System32', 'calc.exe')

判断路径有效项

7.==os.path.exists()==判断路径是否存在
8.==os.path.isdir()==判断参数存在并是一个文件夹
9.==os.path.isfile()==判断参数存在并且是一个文件

绝对路径和相对路径

两种方法指定一个文件路径

  1. 绝对路径,总是从根文件夹开始
  2. 相对路径,相对于程序的当前工作目录开始

在这里插入图片描述
在这里插入图片描述

处理绝对路径和相对路径

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

==os.path.isabs(path)==判断参数是否是一个绝对路径

==os.path.relpath(path,start)==返回从start路径到path的相对路径的字符串。若未提供start则以当前工作目录作为start。

>>> os.path.abspath('.')
'C:\Python34'
>>> os.path.abspath('.\Scripts')
'C:\Python34\Scripts'
>>> os.path.isabs('.')
False
>>> os.path.isabs(os.path.abspath('.'))
True
>>> os.path.abspath('.')
'C:\Python34'
>>> os.path.abspath('.\Scripts')
'C:\Python34\Scripts'
>>> os.path.isabs('.')
False
>>> os.path.isabs(os.path.abspath('.'))
True

文件读写

==os.path.getsize(path)==将返回path参数中文件的字节数
==os.listdir(path)==将返回文件名字符串的列表,包含path参数中的每个文件

>>> os.path.getsize('C:\Windows\System32\calc.exe')
776192
>>> os.listdir('C:\Windows\System32')
['0409', '12520437.cpx', '12520850.cpx', '5U877.ax', 'aaclient.dll',
--snip--
'xwtpdui.dll', 'xwtpw32.dll', 'zh-CN', 'zh-HK', 'zh-TW', 'zipfldr.dll']

读写文件

==open(path,‘w’)==写模式打开文件(将覆盖原有的文本)
==open(path,‘a’)==添加模式打开文件(在已有文本末尾添加文本)

>>> baconFile = open('bacon.txt', 'w')
>>> baconFile.write('Hello world!n')
13
>>> baconFile.close()
>>> baconFile = open('bacon.txt', 'a')
>>> baconFile.write('Bacon is not a vegetable.')
25
>>> baconFile.close()
>>> baconFile = open('bacon.txt')
>>> content = baconFile.read()
>>> baconFile.close()
>>> print(content)
Hello world!
Bacon is not a vegetable

用shelve模式保存变量

可以将python程序中的变量保存到二进制的shelf文件中。这样程序就可以从硬盘中恢复变量的数据。
例如

>>> import shelve
>>> shelfFile = shelve.open('mydata')
>>> cats = ['Zophie', 'Pooka', 'Simon']
>>> shelfFile['cats'] = cats
>>> shelfFile.close()

在Windows上运行前面的代码,会看到当前工作目录下会有三个新文件:mydata.bak,mydata.dat,madata.dir,而在os x上,只会创建一个mydata.db文件。

稍后可用程序打开shelve模块,重新打开文件并取出数据。shelve值不必用读或者写模式打开,因为他们在打开后既能读又能写。

>>> shelfFile = shelve.open('mydata')
>>> type(shelfFile)##显示文件类型
<class 'shelve.DbfilenameShelf'>
>>> shelfFile['cats']
['Zophie', 'Pooka', 'Simon']
>>> shelfFile.close()

shelve值也有keys()和values()方法。与字典类似,但返回值不是真正的列表。

>>> shelfFile = shelve.open('mydata')
>>> list(shelfFile.keys())
['cats']
>>> list(shelfFile.values())
[['Zophie', 'Pooka', 'Simon']]
>>> shelfFile.close()

最后

以上就是受伤煎蛋为你收集整理的文件的读写读写文件的全部内容,希望文章能够帮你解决文件的读写读写文件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部