文件复制及os模块,dirname,name,join,相对路径,绝对路径,getsize,getcwd,listdir等

文件复制

文件复制是这样的一个操作过程,用到一次读一次写,写的过程嵌套在第一次读的里面。注意只有文件才能open读写,文件夹不能open会报PermissionError。

#文件复制操作,先读源文件然后写到目的文件
#写操作
with open(r'C:\Users\XY\Desktop\个税.png','rb') as stream:
    container=stream.read() #容器接收读流读到的文件
    with open(r'D:\daima\个税.png','wb') as wstream:
        wstream.write(container) #写流写读的文件

可以看到此时桌面的文件已经复制出现到D盘daima文件夹下了。

 

os模块(dirname,name,rfind,os.path.join)

那如果我们要复制文件夹怎么办呢,这时候我们要引入os模块(os模块中包含很多操作文件的东西)

import os

path=os.path.dirname(__file__) #当前文件的文件夹目录名字(绝对路径str型)
print(path)


path=path.join(iterbale)   #path.join 是字符串或列表的拼接

path1=os.path.join(path, paths)   #路径的拼接,文件夹目录的名字+文件名字


#用于复制文件操作

#用于复制文件操作
import os
with open(r'C:\Users\XY\Desktop\个税.png','rb') as stream:
    container=stream.read()
    name=stream.name   #C:\Users\XY\Desktop\个税.png
    name1=name[-6:]    
'''
 还有一种方法 name1=name[name.rfind('\\')+1 : ] 意思是从右查询'\'的位置 因为斜杠会被识别转义字符,所以我们不用r 而用两个斜杠'\\'
'''    
    print(name1)       #个税.png
    path=os.path.dirname('__file__')
    path1=os.path.join(path,name1)  #join后允许拼接多个
    with open(path1,'wb') as wstream:
        wstream.write(container)

要获取文件名不单可以用rfind,还可用os模块中的os.path.split(path)

#获取文件名字
import os 
name=os.path.split(r'C:\Users\XY\Desktop\个税.png') 
#分割生成一个元组,第一个元素为目录,第二元素为文件名
print(name[1])

而os.path.splitext(path)可以把文件的后缀名分隔开。

 

相对路径,绝对路径

os.path.isabs():判断是否为绝对路径

os.path.abspath():获取绝对路径

 

相对路径:相对路径是有参照点的,比如参照现在正在编辑的文件来找文件,即为相对路径

相对路径中同级别的文件、目录可直接调用,要返回上一级去寻找上一级的同级目录下的文件可用‘../’来调用。

嵌套目录,比如有两层,可以用'../../'来返回

要通过相对路径获取绝对路径:

#要通过相对路径获得绝对路径
import os
p=os.path.abspath('lambda_map_reduce.py') #括号中是相对路径,因为与编写代码同级
print(p)  #输出为绝对路径

 

D:\daima\lambda_map_reduce.py

获取当前文件的绝对路径:

#获取当前文件的绝对路径
p1=os.path.abspath(__file__)
print(p1)

要获取当前文件的工作目录:

#要获取当前文件的工作目录:
p2=os.getcwd()
print(p2)

 

获取文件大小

#获取文件大小
size=os.path.getsize('..')
print(size)

28672 单位(字节)

 

 

获取指定目录下的所有文件列表

#返回指定目录下的文件列表
listd=os.listdir(r'D:/daima')
print(listd)

 

创建一个文件夹ppp:

#创建一个文件夹
ppp=os.mkdir(r'D:/ppp')
print(ppp)   #None



删除文件及文件夹:

#删除空文件夹
os.rmdir(r'D:/ppp')
#删除多个文件夹或嵌套文件夹:
os.removedirs(name)
#删除文件
os.remove(path)

#完整删除过程
#删除文件夹中多个文件并删除文件夹
listd=os.listdir(path)
for file in listd:
    path1=os.path.join(path,file)
    os.remove(path1)
else:                              #循环执行完后执行else
    os.rmdir(path)

 

切换目录:

os.chdir()

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码将文件保存至相对路径下: ```python import os # 获取当前工作目录 cwd = os.getcwd() # 定义相对路径 relative_path = "data/file.txt" # 拼接绝对路径 absolute_path = os.path.join(cwd, relative_path) # 打开文件并写入内容 with open(absolute_path, "w") as f: f.write("Hello, World!") ``` 这段代码会在当前工作目录下创建一个名为"data"的文件夹,并在其中创建一个名为"file.txt"的文件,并将"Hello, World!"写入该文件中。 ### 回答2: 在Python中,使用os模块可以方便地进行文件和目录的操作。要保存文件相对路径下,可以通过以下几个步骤实现: 1. 首先,要准备好要保存的文件相对路径。假设我们要保存文件为"example.txt",并且要保存到当前文件所在目录的一个名为"data"的文件夹中。 2. 导入os模块: ``` import os ``` 3. 获取当前文件所在目录的绝对路径: ``` current_dir = os.path.dirname(os.path.abspath(__file__)) ``` 这里使用了`os.path.abspath(__file__)`来获取当前文件绝对路径,并使用`os.path.dirname()`获取文件所在目录的路径。 4. 构建要保存的文件相对路径: ``` relative_path = os.path.join(current_dir, 'data', 'example.txt') ``` 使用`os.path.join()`方法将当前目录路径、目标文件夹名字和文件名连接起来,生成文件相对路径。 5. 使用open()函数创建一个文件对象,并将数据写入文件中: ``` with open(relative_path, 'w') as f: f.write('Hello, world!') ``` 这里以写入文本的方式打开文件并写入数据,使用相对路径来指定要保存的位置。 6. 文件保存完成后,释放资源。 通过以上步骤,我们就能够将文件保存至相对路径下了。需要注意的是,相对路径是相对于当前文件所在的目录,因此在实际使用时,需要根据具体的需求和目录结构来确定相对路径的构建方式。 ### 回答3: 使用Pythonos模块保存文件相对路径下相对简单。以下是一种实现方式: 首先,我们需要使用os模块中的getcwd()函数获取当前工作目录的绝对路径,然后将其存储在一个变量中,以便后续使用。 ```python import os # 获取当前工作目录的绝对路径 current_dir = os.getcwd() ``` 接下来,我们可以通过拼接路径的方式,将文件相对路径与当前工作目录的绝对路径连接起来。假设要保存的文件名为"example.txt",并且相对路径为"subfolder",我们可以使用os模块join()函数来完成拼接。 ```python import os # 获取当前工作目录的绝对路径 current_dir = os.getcwd() # 定义文件名和相对路径 file_name = "example.txt" relative_path = "subfolder" # 拼接文件路径 file_path = os.path.join(current_dir, relative_path, file_name) ``` 最后,我们可以使用Python文件操作函数(如open())将数据写入到指定的文件路径。 ```python import os # 获取当前工作目录的绝对路径 current_dir = os.getcwd() # 定义文件名和相对路径 file_name = "example.txt" relative_path = "subfolder" # 拼接文件路径 file_path = os.path.join(current_dir, relative_path, file_name) # 写入文件内容 with open(file_path, "w") as file: file.write("Hello, world!") ``` 通过以上的步骤,我们就能够使用os模块文件保存至相对路径下了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值