python目录文件操作_Python目录与文件操作

一、判断一个路径是否存在

os.path.exists(path)

如果路径存在则返回True,否则返回False.

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.

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)

返回指定路径的所有文件的列表。

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])

创建一个目录

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目录不存在。

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)

重命名目录或文件

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)

移动目录或文件

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)

删除一个存在的空目录.

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, οnerrοr=None, followlinks=False)

以top-down或bottom-up的方式递归遍历整个目录,返回(dirpath, dirnames, filenames)元组。

os.remove(path)

删除一个指定的文件。

os.path.join(path1[, path2[, ...]])

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]])

删除一个目录树。

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.

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)

获取文件的属性.

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)

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写入文件,并返回字节数.

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()

② 追加写

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()

读取文件中的每行内容,以列表形式返回.

① 读指定字符

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()

② 读一行内容

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()

③ 读所有行内容

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都只能是文件.

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可以是文件也可以是目录。

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)

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值