Python基础刻意训练——DAY7

Python基础刻意训练——DAY7

学习内容:
主要内容:文件与文件系统
前言:

文件调用的好处,可以直接将重要的数据放在文件中,需要的时候调用即可,使得代码条理更加清晰,而不会因为数据量的冗长变得可读性很差。另外,python对于文件调用的直接性,使得文件的查找还有相关的操作更加便捷(类似于Linux,Windows的cmd命令操作),而省去了其他的不必要的查询时间。
1)文件操作:

文件格式一般有这些:exe txt avi

  • 打开文件:

基本格式

f=open(r"地址",模式(默认为r–读取)

相关模式:

模式含义
‘r’只读模式(默认)
‘w’写入方式打开,覆盖 已存在 的文件
‘x’文件如果存在,则显示异常
‘a’写入模式打开,文件存在,末尾补写;不存在,新建写入
‘b’二进制打开文件
‘t’文本模式打开(默认)
‘+’可读写模式(可添加到其他模式中使用)
‘U’通用换行符支持

注意:
写文件名的时候需要考虑到转义字符的情况,因此我采用了r’字符’的方式,来保证内部文件名的正常。——也可以使用加加斜杠转义,或者是反斜杠
另外,我们能够查询的往往是文件所在的文件夹的位置,需要在后面添加\然后根据提示,选择我们需要打开的文件
参考链接:
https://blog.csdn.net/xd060606/article/details/87164798

  • 文件操作的相关函数:
函数含义
f.read([size=-1])读取size 个字符
(当未给定size或给定负值的时候,读取剩余的所有字符)
f.readline([size=-1])默认参数为-1,如果参数为负数,或者是没有,则读出这一行后面的所有信息
{如果参数大于0,则读入size个字符;如果参数为0,则读入‘’(空格字符)}
f.write(str)将字符串写进文件中
(注意:必须要打开‘w’写入模式(完全覆盖)或者是‘a’写入模式(末尾追加))
f.writelines(seq)写入字符串序列,seq是一个返回字符串的可迭代对象
f.close()关闭文件
f.tell()查找当前书签(指针)的位置
f.seek(offset,from)从from(0表示文件起始位置,1表示当前位置,2表示文件末尾)偏移offset个字节
f.truncate([size=file.tell()])文件到size的位置,默认是文件到当前的位置。

参考文件操作法函数链接:
https://fishc.com.cn/forum.php?mod=viewthread&tid=45279&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403

注意事项:

  1. 随时关闭文件——f.close()
    原因:
    在没有关闭文件之前,输入的所有数据都作为缓存,放在python的缓存区里面,此时点开文件可以发现文件里面并没有输入写入的数据,而当完成了关闭文件的过程之后,数据就存入进去了。——同时,也提醒着我们,一定要主要保存好自己的相关数据。
  2. f.tell()返回字节数目——一个中文符号与文字占用两个字节;而一个英文字母与符号占用一个字节
  3. f.seek(offset,from)——偏移为+,右移;偏移为-,左移。在文本文件中,没有使用b模式选项打开的文件,只能从文件头开始计算相对位置,而从文件末尾计算会引发异常现象。例如:‘rb+’‘rb’

参考链接:http://www.dutycode.com/post-30.html
https://www.cnblogs.com/xuexizongjie/p/10674306.html

  1. f.write()或者是f.writelines(seq)——一定要打开写入模式
    参考链接:http://c.biancheng.net/view/4758.html

  2. f.truncate()——在使用的时候,一定要先打开写入的模式,当然,为了能够读,也要打开读的模式,这个时候建议打开‘a+’ ——如果没有打开写入的模式,会显示打不开。。

参考链接:https://www.runoob.com/python/file-truncate.html

打印文本的常用操作:

###官方经典操作
for each_line in f:
    print(each_line)

###一般操作   
lines=list(f)
for each_line in lines:
    print(each_line)

2)文件系统操作:

先介绍一下模块的定义:包含所有你定义的函数和变量的文件,后缀名是.py。模块可以被其他程序引入,以使用该模块中的函数等功能

今天使用的模块是OS(operating system) 模块,python的跨平台OS模块可以帮助选择正确的模块并且调用

  • os模块的相关函数:
函数形式含义
os.getcwd()返回当前工作的目录
os.chdir()改变工作目录
os.listdir(path=’.’)列举指定目录下的所有文件夹名默认为当前目录下的所有文件
(‘.’当前目录,‘…’表示上一级目录))‘.’与‘…’的操作仅限于当前
目录(非指定的目录)的文件名查看,而且‘…’就不能进行查看
os.mkdir(path)创建单层目录,如果已经存在,则抛出异常
os.makedirs(path)创建多层目录
os.rmdir()删除单层目录
os.removedirs删除多层目录
os.rename(old,new)更改文件的名字
os.system(‘command’)运行系统的shell命令 cmd calc
os.curdir当前目录’.’
os.pardir上一级目录’…’ 例如:os.listdir(os.pardir)
os.sep输出操作系统特有的路径分隔符(win下是’\’,Linux下是‘/’)
os.linesep当前平台使用的行终止符(win:‘r\n\’Linux:’\n’)
os.name指代当前使用的操作系统(‘nt’ ‘posix’ ‘mac’ ‘os2’ ‘ce’ ‘java’)
  • os.path模块常见函数:
函数形式含义
basename()去掉目录路径,单独返回文件名
dirname()去掉文件名,单独返回目录路径
join(path1[, path2[, …]])将path1, path2各部分组合成一个路径名
split(path)分割文件名与路径,返回(f_path, f_name)元组。如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
splitext(path)分离文件名与扩展名,返回(f_name, f_extension)元组
getsize(file)返回指定文件的尺寸,单位是字节
getatime(file)返回指定文件最近的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
getctime(file)返回指定文件的创建时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
getmtime(file)返回指定文件最新的修改时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
exists(path)判断指定路径(目录或文件)是否存在
isabs(path)判断指定路径是否为绝对路径
isdir(path)判断指定路径是否存在且是一个目录
isfile(path)判断指定路径是否存在且是一个文件
islink(path)判断指定路径是否存在且是一个符号链接
ismount(path)判断指定路径是否存在且是一个挂载点
samefile(path1, paht2)判断path1和path2两个路径是否指向同一个文件

参见链接:https://fishc.com.cn/forum.php?mod=viewthread&tid=45512&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403

### 回答1: Python计算思维训练中,循环和列表是非常重要的概念。循环可以让我们重复执行某些操作,而列表则是一种非常方便的数据结构,可以存储多个元素。在Python中,我们可以使用for循环来遍历列表中的元素,也可以使用while循环来重复执行某些操作,直到满足某个条件为止。同时,我们还可以使用列表推导式来快速生成列表,这对于处理大量数据非常有用。总之,循环和列表是Python编程中必不可少的基础知识,掌握它们可以让我们更加高效地处理数据和解决问题。 ### 回答2: Python是一门流行的编程语言,使用它可以进行各种类型的编程。计算思维是一种重要的编程思维方式,它非常适合用Python语言来进行训练。在这方面,循环和列表是Python编程中重要的概念之一。 循环是Python编程中非常常用的结构,它允许程序在代码块中重复执行相同的操作。 Python提供了两种类型的循环:for循环和while循环。 for循环适用于在已知对象(如字符串、列表或元组)上循环,而while循环适用于在条件为真时循环。在循环中,我们经常使用控制流语句如break和continue,来控制循环结束或跳过某些迭代。 列表是Python中非常重要的数据类型之一,可以存储一系列有序的元素。因为列表是可变的数据类型,所以它可以通过添加、删除元素来修改。 Python中的列表提供了一系列有用的方法,如append(添加元素)、pop(删除元素)、sort(排序元素)等。通过使用列表,我们可以很方便地存储和处理大量数据。同时,利用嵌套列表,我们可以存储复杂结构的数据,如矩阵和树等。 循环和列表是Python编程的两个重要构成部分。它们可以提高我们的编程效率,减少代码行数,同时也可以让我们更好地理解和应用计算思维的概念。因此,在Python编程训练中,我们应该注重循环和列表的学习。例如,我们可以通过编写简单的程序来打印斐波那契数列或找到列表中的最大值,来练习循环和列表的概念。 通过不断训练和实践,我们可以更深入地理解Python编程的精髓,提高我们的编程思维和手段。 ### 回答3: Python是一门非常强大的编程语言,它具有着多种数据类型和结构,其中列表是Python语言中最为常用的一种数据结构,循环则是Python语言中最为重要的控制语句之一。在Python的计算思维训练中,循环和列表是两个非常重要的主题。 在Python中,循环一般分为两种,分别是for循环和while循环。这两种循环语句可以帮助开发者重复执行一段代码,从而避免代码重复。for循环一般用于对一组数据的遍历,可以对列表、元组、字符串等序列类型进行遍历操作。while循环则是在条件满足的情况下一直执行一段代码,直到条件不满足为止。通过掌握循环语句,开发者能够编写出更加高效的代码,提高代码开发和维护的效率。 除了循环语句,列表也是Python语言中非常重要的数据结构之一。列表是一个有序的数据序列,可以存储任意类型的数据,包括数字、字符串、元组及其他列表等等。Python中的列表还具有嵌套的特性,即可以将一个列表当作另一个列表的元素。通过使用列表,开发者能够更加方便地处理大量数据,并进行各种复杂的操作。 循环和列表是Python计算思维中非常重要的两个主题。学会了循环和列表的使用方法,开发者能够更加高效地处理各种数据,编写出更加优雅的程序。同时,循环和列表也是Python语言中的基础,掌握好这两个主题,能够为后续的计算思维训练打下很好的基础,进一步提高开发者的编程能力和水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值