我是靠谱客的博主 受伤煎蛋,这篇文章主要介绍文件的读写读写文件,现在分享给大家,希望可以做个参考。

文章目录

  • 读写文件
    • 文件与文件路径
    • 寻找路径常用函数
      • 判断路径有效项
    • 绝对路径和相对路径
      • 处理绝对路径和相对路径
    • 文件读写
      • 读写文件
      • 用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()

复制代码
1
2
3
4
>>> import os >>> os.path.join('usr', 'bin', 'spam') 'usr\bin\spam'

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

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

复制代码
1
2
3
4
5
6
7
>>> import os >>> os.getcwd() 'C:\Python34' >>> os.chdir('C:\Windows\System32') >>> os.getcwd() 'C:\Windows\System32'

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

复制代码
1
2
3
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')

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

复制代码
1
2
3
4
5
6
>>> path = 'C:\Windows\System32\calc.exe' >>> os.path.basename(path) 'calc.exe' >>> os.path.dirname(path) 'C:\Windows\System32'

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

复制代码
1
2
3
4
>>> 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。

复制代码
1
2
3
4
5
6
7
8
9
>>> os.path.abspath('.') 'C:\Python34' >>> os.path.abspath('.\Scripts') 'C:\Python34\Scripts' >>> os.path.isabs('.') False >>> os.path.isabs(os.path.abspath('.')) True
复制代码
1
2
3
4
5
6
7
8
9
>>> 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参数中的每个文件

复制代码
1
2
3
4
5
6
7
>>> 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’)==添加模式打开文件(在已有文本末尾添加文本)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> 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文件中。这样程序就可以从硬盘中恢复变量的数据。
例如

复制代码
1
2
3
4
5
6
>>> 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值不必用读或者写模式打开,因为他们在打开后既能读又能写。

复制代码
1
2
3
4
5
6
7
>>> shelfFile = shelve.open('mydata') >>> type(shelfFile)##显示文件类型 <class 'shelve.DbfilenameShelf'> >>> shelfFile['cats'] ['Zophie', 'Pooka', 'Simon'] >>> shelfFile.close()

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

复制代码
1
2
3
4
5
6
7
>>> shelfFile = shelve.open('mydata') >>> list(shelfFile.keys()) ['cats'] >>> list(shelfFile.values()) [['Zophie', 'Pooka', 'Simon']] >>> shelfFile.close()

最后

以上就是受伤煎蛋最近收集整理的关于文件的读写读写文件的全部内容,更多相关文件内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部