python 创建和读取 文件夹 和 .txt文件以及os.path.join()函数进行拼接路径拼接

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()函数用于路径拼接文件路径,可以传入多个路径

  1. 如果不存在以‘’/’开始的参数,则函数会自动加上
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
  1. 存在以 *‘’/’’* 开始的参数,从最后一个以”/”开头的参数开始拼接,之前的参数全部丢弃。
>>> 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
  1. *同时存在以‘’./’与‘’/’’开始的参数,以‘’/’为主**,从最后一个以”/”开头的参数开始拼接,之前的参数全部丢弃。
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)

程序所在路径
![在这里插入图片描述](https://img-blog.csdnimg.cn/b8f7d
读完文件夹下的内容如下 也可以读取到文件夹里面的文件夹
在这里插入图片描述

读取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

猜你喜欢

转载自blog.csdn.net/m0_63669388/article/details/132119279