Python中学到的函数

1  os.path.exists()

转自:https://blog.csdn.net/u012424313/article/details/82216092

os即operating system(操作系统),Python 的 os 模块封装了常见的文件和目录操作。

os.path模块主要用于文件的属性获取,exists是“存在”的意思,所以顾名思义,os.path.exists()就是判断括号里的文件是否存在的意思,括号内的可以是文件路径。

举个栗子:

user.py为存在于当前目录的一个文件

输入代码:

import os
path = os.path.exists('user.py')
print(path)

输出:

True
 
Process finished with exit code 0

2  os.mkdir()与os.makedirs()

https://blog.csdn.net/Beyond_F4/article/details/80430911

 

首先说os.mkdir(path),他的功能是一级一级的创建目录,前提是前面的目录已存在,如果不存在会报异常,比较麻烦,但是存在即有他的道理,当你的目录是根据文件名动态创建的时候,你会发现他虽然繁琐但是很有保障,不会因为你的一时手抖,创建而创建了双层或者多层错误路径,

import os
 
os.mkdir('d:\hello')    #  正常
os.mkdir('d:\hello\hi') #  正常
 
#  如果d:\hello目录不存在
#  则os.mkdir('d:\hello\hi')执行失败

然后是os.makedirs(path),单从写法上就能猜出他的区别,他可以一次创建多级目录,哪怕中间目录不存在也能正常的(替你)创建,想想都可怕,万一你中间目录写错一个单词.........

import os
 
os.makedirs('d:\hello')    #  正常
os.makedirs('d:\hello\hi') #  正常
 
#  如果d:\hello目录不存在
#  则os.mkdir('d:\hello\hi')  #  仍然正常

3  os.path.join()

https://blog.csdn.net/weixin_37895339/article/details/79185119

os.path.join()函数用于路径拼接文件路径。 
os.path.join()函数中可以传入多个路径:

会从第一个以”/”开头的参数开始拼接,之前的参数全部丢弃。

有多个以”/”开头的参数,从最后”/”开头的的开始往后拼接,之前的参数全部丢弃。

以上一种情况为先。在上一种情况确保情况下,若出现”./”开头的参数,会从”./”开头的参数的上一个参数开始拼接。
 

import os

print("1:",os.path.join('aaaa','/bbbb','ccccc.txt'))

print("2:",os.path.join('/aaaa','/bbbb','/ccccc.txt'))

print("3:",os.path.join('aaaa','./bbb','ccccc.txt'))

输出为:

1: /bbbb\ccccc.txt
2: /ccccc.txt
3: aaaa\./bbb\ccccc.txt

在windows下的字符串中 正反斜杠都可以用来作为 目录分隔符

 

python默认采用的是linux的语法

4 os.path.dirname(__file__)

原文:https://blog.csdn.net/u011760056/article/details/46969883 

os.path.dirname(__file__)返回脚本的路径,但是需要注意一下几点:

1、必须是实际存在的.py文件,如果在命令行执行,则会引发异常NameError: name '__file__' is not defined

2、在运行的时候如果输入完整的执行的路径,

       则返回.py文件的全路径如:

       python c:/test/test.py

       则返回路径 c:/test ,

       如果是python test.py 则返回空

3、结合os.path.abspath用,效果会好,如果大家看过一些python架构的代码的话,会发现经常有这样的组合

os.path.dirname(os.path.abspath(__file__)),os.path.abspath(__file__)返回的是.py文件的绝对路径


5  os.path.abspath(__file__) 获取脚本完整路径

最后获得该文件的完整路径

一大波OS的返回显示:

https://blog.csdn.net/ningning52107/article/details/80245901

#coding=utf-8
import os
print os.path.abspath("d:\\new\\test.txt")    #d:\new\test.txt
print os.path.basename("d:\\new\\test.txt")   #test.txt
print os.path.dirname("d:\\new\\test.txt")    #d:\new
print os.path.exists("d:\\new")               #True
print os.path.lexists("d:\\new")              #True
print os.path.expanduser("d:\\new\\text.txt") #d:\new\text.txt
print os.path.getatime("d:\\new")  #最后访问时间
print os.path.getmtime("d:\\new") #最后修改路径时间
print os.path.getctime("d:\\new")  #创建时间
print os.path.getsize("d:\\new\\")  #或许路径的大小 字节为单位
print os.path.isabs("d:\\")  #是否是绝对路径
print os.path.isfile("d:\\new\\hello.txt")
print os.path.isdir("d:\\new")
print os.path.islink("d:\\new\\hello.txt")
print os.path.join("d:\\new","hello.txt")
print os.path.normcase("d:\\new\\hello.txt")
print os.path.relpath("d:\\new\\hello.txt")  #相对路径
print os.path.split("d:\\new\\hello.txt")  #分离文件名
print os.path.splitdrive("d:\\new\\hello.txt")  #分离磁盘驱动器
print os.path.splitext("d:\\new\\hello.txt")  #分离扩展名

os.path.splitext()

split()  用于返回目录路径和文件名的元组
import os
os.path.split('d:\\library\\book.txt') #输出('d:\\library', 'book.txt')

splitdrive()    用于返回盘符和路径字符元组
os.path.splitdrive('d:\\library\\book.txt') #输出('d:', '\\library\\book.txt')

splitext()    用于返回文件名和扩展名元组
os.path.splitext('d:\\library\\book.txt')('d:\\library\\book', '.txt')
os.path.splitext('book.txt')('book', '.txt')

所以os.path.splitext(os.path.basename(in_path.decode(“utf8”)))

path10=os.path.splitext(os.path.basename(D:\anaconda\projects\treelstm\treelstm.pytorch-master\scripts\ostest.py))
print(path10)#得到最后一个文件或文件名和它的后缀


结果
('ostest', '.py')

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解决这个问题。首先,你需要构建一个学生管理系统,通常需要使用Python中的面向对象编程。在这个系统中,你需要定义一个学生类,包括姓名、年龄、性别、学号等属性,然后你可以将学生信息存储在一个列表或字典中。 接下来,你需要编写一个函数来修改学生信息。这个函数需要接收一个学号作为参数,然后根据学号在学生信息列表或字典中查找对应的学生信息。一旦找到了对应的学生信息,你可以提示用户输入要修改的属性,并将其更新到学生对象中。最后,你需要将更新后的学生信息保存到列表或字典中。 下面是一个简单的示例代码: ```python class Student: def __init__(self, name, age, gender, student_id): self.name = name self.age = age self.gender = gender self.student_id = student_id # 初始化学生信息列表 students = [ Student("Tom", 18, "male", "001"), Student("Jerry", 19, "female", "002"), Student("Alice", 20, "female", "003") ] # 修改学生信息函数 def modify_student_info(student_id): for student in students: if student.student_id == student_id: print("Which attribute do you want to modify?") attribute = input() # 提示用户输入要修改的属性 value = input("Enter the new value: ") # 提示用户输入新的属性值 setattr(student, attribute, value) # 更新学生对象 print("Student information updated successfully!") break else: print("Student not found") # 测试修改学生信息函数 modify_student_info("002") ``` 在上面的示例代码中,我们定义了一个`Student`类,包含了学生的姓名、年龄、性别和学号等属性。然后,我们初始化了一个包含三个学生信息的列表`students`。 接下来,我们定义了一个`modify_student_info`函数,它接收一个学号作为参数,并在`students`列表中查找对应的学生信息。如果找到了对应的学生信息,我们会提示用户输入要修改的属性,并将其更新到学生对象中。最后,我们会打印出更新成功的提示信息。 最后,我们调用`modify_student_info`函数,并传入一个学号作为参数,来测试修改学生信息的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值