python文件处理相关

@文件处理

目录与路径

路径和目录的区别:目录和路径的区别

OS模块12

# 导入关键模块
import os
from os.path import dirname
print('=== 当前文件名 ===')
print(__file__)  # 输出:E:/PythonCode/0714/SOH-estimation-main/linshi3.py

print('\n=== 文件路径 ===')
print(os.path.dirname(__file__))  # 输出:E:/PythonCode/0714/SOH-estimation-main

print('\n=== 当前文件所在目录 ===')
print(os.path.dirname(os.path.abspath(__file__)))  # 输出:E:\PythonCode\0714\SOH-estimation-main
print('\n=== 当前文件所在目录 ===')
print(os.getcwd())  # 输出:E:\PythonCode\0714\SOH-estimation-main
print('\n=== 当前文件所在目录 ===')
print(os.path.abspath(dirname(__file__)))  # 输出:E:\PythonCode\0714\SOH-estimation-main

print('\n=== 当前文件所在目录的绝对路径 ===')
print(os.path.abspath("."))  # 输出:E:\PythonCode\0714\SOH-estimation-main
print(os.path.abspath('.'))  # 输出:E:\PythonCode\0714\SOH-estimation-main
print('\n=== 当前文件父级目录绝对路径 ===')
print(os.path.abspath(r".."))  # 输出:E:\PythonCode\0714
print('\n=== 当前文件绝对路径 ===')
print(os.path.abspath("E:/PythonCode/0714/SOH-estimation-main/linshi3.py"))  # 输出:E:\PythonCode\0714\SOH-estimation-main\linshi3.py

print("\n ===当前文件父级目录 === ")
package_dir = os.path.abspath(dirname(dirname(__file__)))
print(package_dir)  # 输出:E:\PythonCode\0714
print("\n ===当前文件父父级目录 === ")
print(os.path.abspath(dirname(dirname(dirname(__file__)))))  # 输出:E:\PythonCode

print('\n=== 返回文件名 ===')
print(os.path.basename('/SOH-estimation-main/linshi3.py'))  # 输出:linshi3.py
print('\n=== 返回目录路径 ===')
print(os.path.dirname('/SOH-estimation-main/linshi3.py'))  # 输出:/SOH-estimation-main
print('\n=== 分割文件名与路径 ===')
print(os.path.split('/SOH-estimation-main/linshi3.py'))  # 输出:('/SOH-estimation-main', 'linshi3.py')
print('\n=== 将目录和文件名合成一个路径 ===')
print(os.path.join('root', 'test', 'linshi3.py'))  # 输出:root\test\linshi3.py

正斜杠/与反斜杠\ 3

对于正斜杠’/‘与反斜杠’’,引文已经说得很清楚了,里面还涉及了路径的多种呈现形式,如前面加’r’或’R’,亦或用’\’,不再赘余。
至于正斜杠’/‘与反斜杠’'的转化,请参考4

路径的拼接

首先参考了python路径拼接os.path.join()函数的用法,但是在程序还是很难直接应用于实际读取文件,故稍作变化:

path_old = os.getcwd()  # 输出: E:\PythonCode\0714\SOH-estimation-main
path_new = os.path.join(path_old, 'test.txt')
print(path_new)  # 输出: E:\PythonCode\0714\SOH-estimation-main\test.txt

此外,还有比较小众但是简单的方法,直接通过’+'拼接起来呗,上代码:

path_old = os.getcwd()  # 输出: E:\PythonCode\0714\SOH-estimation-main
file_path = path_old + 'test.txt'
print(path_new)  # 输出: E:\PythonCode\0714\SOH-estimation-main\test.txt

绝对路径与相对路径的应用

Python绝对路径和相对路径详解中对于什么是绝对路径与相对路径有不错的图解,好,下面开始介绍绝对路径与相对路径的两种应用!

导入模块

参考在Python中以绝对路径或者相对路径导入文件的方法,不再赘余。

文件读写或加载保存

先介绍个有趣的东西,更换当前工作目录,参照这位大佬的:os.chdir(),下面是代码:

# -*- coding: UTF-8 -*-
import os
import pandas as pd

retval = os.getcwd()  # 查看当前工作目录
print("当前工作目录为 %s" % retval)  # 输出:E:\PythonCode\0714\SOH-estimation-main

os.chdir(r"E:\PythonCode\1023\Bayesian-Regression-and-Bitcoin-master\Data")  # 修改当前工作目录
retval = os.getcwd()  # 获取修改后的工作目录
print("目录修改成功 %s" % retval)  # 输出:E:\PythonCode\1023\Bayesian-Regression-and-Bitcoin-master\Data

data = pd.read_csv('test_180.csv')
print(data)

为什么说有趣呢,有人可能会说,你上面使的不是绝对路径么,那我读取文件啥的,直接用绝对路径不就行了,哈哈哈,我之前也是这样想的,可是呢,如果要读取其他文件呢,一个一个加么?

当然,还有其他方式,详参sys.path.insert(0,"/path") 的用法

现在,我准备介绍数据文件(txt、csv、xlxs)的处理方式,可能和标题不是很相关,哈哈哈;针对txt、csv、xlxs这三种数据格式,有很多方式,但是我比较推崇pandas,它针对这三者都适用,详参这位帅气小哥哥/漂亮小姐姐的pandas之数据文件导入和导出(python读取.csv,.txt,excel文件(.xlsx)以及导出为.csv、excel文件),讲得很好!

后更

路径后面反斜杠加与不加有什么区别


  1. Python3 OS 文件/目录方法 ↩︎

  2. os.path.abspath(path) ↩︎

  3. python中的正斜杠与反斜杠 ↩︎

  4. 在python中将反斜杠转换为正斜杠 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值