|||
版本:Python 2.7.5
环境:Windows 7
一、判断一个路径是否存在
os.path.exists(path)
如果路径存在则返回True,否则返回False.
1 2 3 4 5 6 7 8 9 10 11 12 | import os import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir + '\new' if os.path.exists(path): print '你的电脑桌面存在名为new文件夹' else: print '你的电脑桌面不存在名为new文件夹' |
二、目录
1、判断路径是否为目录
os.path.isdir(path)
如果为已存在目录则返回True,否则返回False.
1 2 3 4 5 6 7 8 9 | import os import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir print os.path.isdir(path) |
2、判断目录是否为空
判断目录是否为空前需确保path路径存在,且为目录。
os.listdir(path)
返回指定路径的所有文件的列表。
1 2 3 4 5 6 7 8 9 10 11 12 | import os import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir if len(os.listdir(path)) == 0: print 'empty' else: print 'not empty' |
3、创建目录
创建目录前需确保path路径不存在。
os.mkdir(path[, mode])
创建一个目录
1 2 3 4 5 6 7 8 9 | import os import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir + '\new' os.mkdir(path) |
4、复制目录
shutil.copytree(src, dst, symlinks=False, ignore=None)
拷贝src目录下的所有内容到dst目录下,拷贝前要求dst目录不存在。
1 2 3 4 5 6 7 8 9 10 | import shutil import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir src = desktop_dir + '\old' dst = desktop_dir + '\new' shutil.copytree(src, dst) |
5、重命名目录(文件)
os.renames(old, new)
重命名目录或文件
1 2 3 4 5 6 7 8 9 10 | import os import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir old = desktop_dir + '\old.txt' new = desktop_dir + '\new.txt' os.renames(old, new) |
6、移动目录(文件)
shutil.move(src, dst)
移动目录或文件
1 2 3 4 5 6 7 8 9 10 | import shutil import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir src = desktop_dir + '\old.txt' dst = desktop_dir + '\new' shutil.move(src, dst) |
7、删除目录
① 删除空目录
删除空目录前需确保目录存在,切为空。
os.rmdir(path)
删除一个存在的空目录.
1 2 3 4 5 6 7 8 9 | import os import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir + '\new' os.rmdir(path) |
② 递归删除非空目录
os.walk(top, topdown=True, onerror=None, followlinks=False)
以top-down或bottom-up的方式递归遍历整个目录,返回(dirpath, dirnames, filenames)元组。
os.remove(path)
删除一个指定的文件。
os.path.join(path1[, path2[, ...]])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import os import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir + '\new' for root, dirs, files in os.walk(path, False): for name in files: os.remove(os.path.join(root, name)) for name in dirs: os.rmdir(os.path.join(root, name)) os.rmdir(path) |
③ 使用shutil模块方法
shutil.rmtree(path[, ignore_errors[, onerror]])
删除一个目录树。
1 2 3 4 5 6 7 8 9 10 | import os import shutil import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir + '\new' shutil.rmtree(path) |
三、文件
1、判断路径是否为文件
os.path.isfile(path)
如果为已存在文件则返回True,否则返回False.
1 2 3 4 5 6 7 8 9 10 | import os import shutil import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir + '\new.txt' print os.path.isfile(path) |
2、判断文件是否为空
os.stat(path)
获取文件的属性.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import os import time import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir + '\new.txt' st = os.stat(path) mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime = st print "- size:", size, "bytes" print "- owner:", uid, gid print "- created:", time.ctime(ctime) print "- last accessed:", time.ctime(atime) print "- last modified:", time.ctime(mtime) print "- mode:", oct(mode) print "- inode/dev:", ino, dev if size == 0: print '文件为空' else: print '文件非空' |
3、创建文件
io.open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)
打开文件,返回一个文件流.
1 2 3 4 5 6 7 8 9 10 | import os import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir + '\new.txt' fp = open(path,'w') fp.close() |
4、写入文件
① 覆盖写
write(b)
将b写入文件,并返回字节数.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import os import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir + '\new.txt' fp = open(path, 'w') input_content = '测试中文' try: content_byte = fp.write(input_content) finally: fp.close() |
② 追加写
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import os import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir + '\new.txt' fp = open(path, 'a') input_content = 'n追加一行' try: content_byte = fp.write(input_content) finally: fp.close() |
5、读取文件
read(n)
读取n个字符,如果n为设置,则读取文件所有内容.
readline()
读取文件中的一行内容.
readlines()
读取文件中的每行内容,以列表形式返回.
① 读指定字符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import os import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir + '\new.txt' fp = open(path, 'r') try: output_content = fp.read(4) print output_content finally: fp.close() |
② 读一行内容
1 2 3 4 5 6 7 8 9 10 11 12 13 | import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir + '\new.txt' fp = open(path, 'r') try: output_content = fp.readline() print output_content finally: fp.close() |
③ 读所有行内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import getpass # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir path = desktop_dir + '\new.txt' fp = open(path, 'r') try: output_content = fp.readlines() for every_line in output_content: print every_line finally: fp.close() |
6、复制文件
shutil.copyfile(src, dst)
将文件src的内容复制给文件dst,文件dst可以不存在,但src, dst都只能是文件.
1 2 3 4 5 6 7 8 9 10 | import getpass import shutil # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir src = desktop_dir + '\old.txt' dst = desktop_dir + '\new.txt' shutil.copyfile(src, dst) |
shutil.copy(src, dst)
将文件src的内容复制给dst,若dst为目录,则在该目录下创建与src同名的文件。src只能是文件,dst可以是文件也可以是目录。
1 2 3 4 5 6 7 8 9 10 | import getpass import shutil # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir src = desktop_dir + '\old.txt' dst = desktop_dir + '\new\' shutil.copy(src, dst) |
7、删除文件
os.remove(path)
删除指定的文件. path只能是指定路径的文件,若为目录则报错.
1 2 3 4 5 6 7 8 9 | import getpass import os # 获取当前系统用户名 user_name = getpass.getuser() # 获取系统桌面目录 desktop_dir = 'C:\Users\' + user_name + '\Desktop' print desktop_dir src = desktop_dir + '\old.txt' os.remove(src) |
8、文件属性
os.stat(path)
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-2-6 01:54
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社