概述
文章目录
- 读写文件
- 文件与文件路径
- 寻找路径常用函数
- 判断路径有效项
- 绝对路径和相对路径
- 处理绝对路径和相对路径
- 文件读写
- 读写文件
- 用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()==判断参数存在并且是一个文件
绝对路径和相对路径
两种方法指定一个文件路径
- 绝对路径,总是从根文件夹开始
- 相对路径,相对于程序的当前工作目录开始
处理绝对路径和相对路径
==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()
最后
以上就是受伤煎蛋为你收集整理的文件的读写读写文件的全部内容,希望文章能够帮你解决文件的读写读写文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复