文件有两个关键属性: “文件名”和“属性”
os.path.join函数用法:
>>> import os >>> os.path.join('usr', 'bin', 'spam') 'usr\bin\spam' >>> myFiles = ['accounts.txt', 'details.csv', 'invite.docx'] >>> for filename in myFiles: print(os.path.join('C:\Users\asweigart', filename)) C:Usersasweigartaccounts.txt C:Usersasweigartdetails.csv C:Usersasweigartinvite.docx
当前工作目录
os.getcwd()函数-->返回当前工作目录
os.chdir()函数-->修改当前工作目录
>>> import os >>> os.getcwd() 'C:\Python34' >>> os.chdir('C:\Windows\System32') >>> os.getcwd() 'C:\Windows\System32'
用os.makedirs()创建新文件夹
>>> import os >>> os.makedirs('C:\delicious\walnut\waffles')
处理绝对路径和相对路径
1. os.path.abspath(path):返回参数的绝对路径的字符串
2. os.path.isabs(path):如果参数是一个绝对路径,就返回 True,如果参数是一个相对路径,就返回 False。
3.os.path.relpath(path,start):返回从 start 路径到 path 的相对路径的字符串
>>> 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.relpath('C:\Windows', 'C:\') 'Windows' >>> os.path.relpath('C:\Windows', 'C:\spam\eggs') '..\..\Windows' >>> os.getcwd() 'C:\Python34'
4. os.path.dirname(path):将返回一个字符串,它包含 path 参数中最后一个斜杠之前的所有内容.
5. os.path.basename(path):将返回一个字符串,它包含 path 参数中最后一个斜杠之后的所有内容
6. os.path.split(path):将返回一个包括目录名称和基本名称的两个字符串的元组
>>> path = 'C:\Windows\System32\calc.exe' >>> os.path.basename(path) 'calc.exe' >>> os.path.dirname(path) 'C:\Windows\System32' >>> calcFilePath = 'C:\Windows\System32\calc.exe' >>> os.path.split(calcFilePath) ('C:\Windows\System32', 'calc.exe') >>> calcFilePath.split(os.path.sep) ['C:', 'Windows', 'System32', 'calc.exe']
查看文件大小和文件夹内容:
os.path.getsize(path)将返回path参数中文件的字节数
os.listdir(path)将返回文件名字符串的列表。
>>> os.path.getsize('C:\Windows\System32\calc.exe') 776192 >>> os.listdir('C:\Windows\System32') ['0409', '12520437.cpx', '12520850.cpx', '5U877.ax', 'aaclient.dll','xwtpdui.dll', 'xwtpw32.dll', 'zh-CN', 'zh-HK', 'zh-TW', 'zipfldr.dll'] >>> totalSize = 0 >>> for filename in os.listdir('C:\Windows\System32'): totalSize = totalSize + os.path.getsize(os.path.join('C:\Windows\System32', filename)) >>> print(totalSize) 1117846456
检查路径有效性:
>>> os.path.exists('C:\Windows') True >>> os.path.exists('C:\some_made_up_folder') False >>> os.path.isdir('C:\Windows\System32') True >>> os.path.isfile('C:\Windows\System32') False >>> os.path.isdir('C:\Windows\System32\calc.exe') False >>> os.path.isfile('C:\Windows\System32\calc.exe') True
在Python中,读写文件的三个步骤:
1. 调用 open()函数, 返回一个 File 对象, 默认的情况下,文件是以读的方式打开。
2.调用 File 对象的 read()或 write()方法。
3.调用 File 对象的 close()方法,关闭该文件。
读取文件内容:
1. File对象的read()方法:将整个文件的内容读取为一个字符串值。
2. File对象的readlines()方法: 将文件取得一个字符串的列表,列表中的每个字符串就是文本中的每一行
写入文件:
1. ‘w’作为第二个参数传递给open()写模式:将覆写原有的文件,从头开始,就像你用一个新值覆写一个变量的值
2.‘a’作为第二个参数传递给open()写模式:添加模式打开该文件
>>> baconFile = open('bacon.txt', 'w') >>> baconFile.write('Hello world! ') 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.