python创建文件夹 和 .txt文件
利用os模块来 创建文件夹
主要涉及到三个函数:
1、os.path.exists(path) 判断一个目录是否存在
2、os.makedirs(path) 多层创建目录
3、os.mkdir(path) 创建目录
#如果文件夹存在,就输出存在,然后跳过,如果不存在就直接创建文件夹
import os
def makedir(path):
# path是传入的路径
if os.path.exists(path):
print(path + '文件夹已有')
pass
else:
os.mkdir(path)
print(path + '文件夹创建成功')
说明: os.mkdir(path) 和 os.makedirs(path)的区别:
这两个函数之间最大的区别是当父目录不存在的时候os.mkdir(path)不会创建,os.makedirs(path)则会创建所有不存在的父目录。
title = '这是一个测试的文件夹' path = 'E:\python\data' + '\\' + title os.mkdir(path)
比如:例子中我要创建的目录文件夹title位于E盘的\python\data目录下,而我E盘下没有这一系列父目录,如果使用os.mkdir(path)函数就会提示我目标路径不存在,报错如
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'E:\\python\\data\\这是一个测试的文件夹'
,但使用os.makedirs(path)会自动帮我创建父目录E:\python\data,然后可以在此父目录下创建出来新的title的文件夹。
也可以使用相对路径./来创建文件夹
os.mkdir('./test')
# 在此个python文件的父目录下进行创建文件夹
# 如下图在 文件测试.py 里面写这行代码,则可以创建一个与该文件同在一个父目录的文件夹 .test
利用open 来创建txt文件
# 法一
filename = 'D:\python\\test1\练习.txt'
# 或者 filename = r"D:\python\test1\练习.txt" 路径前加“r” 因为“\”会将特殊字符转义比如“\n”使回车加行的意思“\t”是制表符的意思
file = open(filename, "w", encoding='utf-8')
file.write('练习文本')
file.close()
# 法二
with open(filename,"w",encoding="utf-8") as f:
f.write(content)
读取类型:
r只读,w写入,a追加
二进制:
rb只读,wb写入,ab追加
os.path.join()函数
os.path.join()
函数用于路径拼接文件路径,可以传入多个路径
- 如果不存在以‘’/’开始的参数,则函数会自动加上
import os
print(os.path.join('path','abc','yyy'))
# 输出
path\abc\yyy
path='C:/yyy/yyy_data/'
print(os.path.join(path,'/abc'))
# 输出 C:/abc
print(os.path.join(path,'abc'))
# 输出 C:/yyy/yyy_data/abc
- 存在以 *‘’/’’* 开始的参数,从最后一个以”/”开头的参数开始拼接,之前的参数全部丢弃。
>>> print('1',os.path.join('aaa','/bbb','ccc.txt'))
1 /bbb\ccc.txt
>>> print('1',os.path.join('/aaa','/bbb','ccc.txt'))
1 /bbb\ccc.txt
>>> print('1',os.path.join('/aaa','/bbb','/ccc.txt'))
1 /ccc.txt
>>> print('1',os.path.join('/aaa','bbb','ccc.txt'))
1 /aaa\bbb\ccc.txt
>>> print('1',os.path.join('/aaa','bbb','/ccc.txt'))
1 /ccc.txt
- *同时存在以‘’./’与‘’/’’开始的参数,以‘’/’为主**,从最后一个以”/”开头的参数开始拼接,之前的参数全部丢弃。
print('2',os.path.join('/aaa','./bbb','ccc.txt'))
# 输出 /aaa\./bbb\ccc.txt
print('2',os.path.join('aaa','./bbb','/ccc.txt'))
# 输出 /ccc.txt
读取文件夹
import os
dirs = os.listdir(r'./data') # 相对路径
print(dirs)
程序所在路径
读完文件夹下的内容如下 也可以读取到文件夹里面的文件夹
读取txt文件
with open(filename,'r',encoding='utf-8') as fo
# 默认读取全部,输入数字可设定读取字符串长度
fo.read()
# 读取一行
fo.readline()
# 读取所有,返回列表
fo.readlines()
参考文献:
http://t.csdn.cn/y0mtY
http://t.csdn.cn/7Hx2U
http://t.csdn.cn/TiUb6