python操作文件的最详细教程

这里需要2个库os和shutil

1…删除
删除文件
os.remove(path)
删除目录
os.rmdir(path)
无情删除,不管是文件或者目录
shutil.rmtree(path)

2.新建
新建文件夹
os.mkdir(path)
递归创建文件夹
os.makedirs(path)
3…复制
只复制文件
shutil.copyfile(path1,path2)
复制文件或者文件夹
shutil.copy(path1,path2)
4.移动
shutil.move(path1,path2)
5.重命名

os.rename(path1,path2)
6.路径相关
获取完整路径
os.path.abspath('xx.py')

获取前一段路径
os.path.dirname(文件)

获取文件分开的扩展名,得到(xx,.py)
os.path.splitext(xx.py)
获取当前路径
os.getcwd()

获取文件列表
os.listdir(path)

判断文件是否存在
os.path.exists(path)

判断是路径或者文件
os.path.isdir(path)
os.path.isfile(path)
举个例子:
import os
for root, dirs, files in os.walk(rootdir):
#	root是根目录,files 是一个文件列表,dirs: 记录正在遍历的文件夹下的子文件夹集合
	for d in dirs:
		#只输出遍历文件夹名
		print(os.path.join(root,d))
	for f in files:
		#只输出便利的文件名
		print(os.path.join(root,f))
7. 创建txt或者py和shell一切文本格式的文档
1,with
with open (file = "你要打开的路径名(或保存内容的地址)",mode = "r/w/a",encoding = "utf-8") as f:
	data = f.read/write()
	print(data)
2,open读写
try:
	f=open(file,'r/w/a',encoding = "utf-8")
	print(f.read/write())
except:
	print('error occurs while reading file')
finally:
	f.close()

举个例子:

try:
path='C:\\Users\\a\\Desktop\\测试文件 test.txt'
with open(path,'r',encoding = "utf-8") as f:
	for line in f:# 要遍历出来
		print(line)
		#data = f.read()
		#print(data)
except:
	print('error occurs while reading file')
8.CSV文件的读写
# 写入csv文件
import csv
 
csvfile = open('csv_test.csv', 'w',newline='')
# 如果不指定newline='',有时则每写入一行将有一空行被写入
writer = csv.writer(csvfile)
writer.writerow(['姓名', '年龄', '电话']) # 写入一行用writerow
 
data = [
    ('al', '25', '1367890900'),
    ('eg', '18', '1367890800')
]
writer.writerows(data)  # 多行用writerows
csvfile.close()





# 读取csv文件
csv_reader = csv.reader(open('csv_test.csv', encoding='utf-8'))
for row in csv_reader:
    print(row)
     
# ['姓名', '年龄', '电话']
# ['al', '25', '1367890900']
# ['eg', '18', '1367890800']






#指定分隔符 ,,,quoting=csv.QUOTE_NONE避免引号报错
import csv
with open('/etc/passwd', 'r') as f:
    reader = csv.reader(f, delimiter=':', quoting=csv.QUOTE_NONE)
    for row in reader:
        print(row)
 
['root', 'x', '0', '0', 'root', '/root', '/bin/bash']
['bin', 'x', '1', '1', 'bin', '/bin', '/sbin/nologin']
['daemon', 'x', '2', '2', 'daemon', '/sbin', '/sbin/nologin']





# 字典方式地读写
headers = ['name', 'age']
 
datas = [{'name': 'Bob', 'age': 23},
         {'name': 'Jerry', 'age': 44},
         {'name': 'Tom', 'age': 15}
         ]
 
with open('example.csv', 'w', newline='') as f:
    # 标头在这里传入,作为第一行数据
    writer = csv.DictWriter(f, headers)
    writer.writeheader()
    for row in datas:
        writer.writerow(row)
 
    # 还可以写入多行
    writer.writerows(datas)
 
 
# 读
import csv
with open('example.csv','r') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(row['name'], row['age'])
# name,age
# Bob,23
# Jerry,44
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值