python笔记(文件操作)

1.linux几个基本操作:
ls -l:查看目录详细内容
ls -lh 人性化的展示文件
cat 查看文件内容
more 慢慢看文件内容
cd ./…/…/… 回去几层
tree+文件名:树状查看目录
mv A B 把A移到B
mkdir -p 递归的创建目录

2.python文件操作
1.数据类型:
 可哈希对象是对象拥有__hash__(self)内置函数的对象。对于可哈希的对象执行这个函数将会返回一个整数。可哈希对象判断相等的唯一条件就是两者 的哈希值相等。如果我们的对象有多个属性值,我们会使用一种方法(比方说逻辑运算异或)来将其属性值结合在一起做比较。
 
不可变: bool,int,str (可哈希)
可变: list,dict,set (不可哈希)
@绝对路径:更目录下的文件

2.读操作:
r+(读写):写多少占多少位
r+b(读写):encoding可以不用
seek:seek(num),从第num后的字节开始看
read(num):读取num个长度
readline() :一行一行的读
readlines() 每一行当成列表中的一个元素,添加到list中(一次性读完)

@常用操作:r+
@编码一般用utf-8

3.追加:
a+:可追加可读

4.open()操作:
f.tell:告诉你光标位置
f.truncate():对源文件进行截取
f.readable():是否刻度
@三个字节决定一个字符
@for循环读取最好
@不能一下把文件读出来,要一行一行读
@每次open完都要加close
@open()不定义编码方式直接读取中文会乱码

5.with操作:
with open() as xxx: 这个不用写close,它会自动关闭
with open() as xxx,open() as xxx,open() as xxx…: 同时打开多个文件
open():默认是读
@format:格式化
@strip:去空格,也可以去换行符
@光标 - 文件指针
视频,图片 用rb(bytes)按照字节读
修改文件:文件不能修直接做修改,一般做修改都是读出来修改完成重命名文件
@删除文件和重名名文件:
import os
os.remove(‘xxxx’):删除xxxx文件
os.rename(‘A’,‘B’):A重命名为B文件
小练习:
1,注册一个用户以文件形式保存;
2,去登陆(在文件中拿取密码用户名(3次登陆失败));

username = input('请输入你的用户名:')
password = input('请输入你要注册的密码:')
with open('lisi_of_info',mode='w',encoding='utf-8‘ as f:
f.write('{}\n{}'.format(username,password))
print('注册完成!')
lis = []
i = 0
while i < 3:
	uname = input('请输入你的用户名:')
	pwd   = input('请输入你的密码:')
	with open('lisi_of_info', mode='r+', encoding='utf-8') as f:
	for line in f:
	        lis.append(line)
		if uname == lis[0].strip() and pwd == lis[1].strip():
			print('登陆成功!')
			break
		else:
		      print('密码错误!')
		      i += 1
		```

 6、在菜鸟学python找的总结:
    1、t:文本模式 (默认)。 x	写模式,新建一个文件,如果该文件已存在则会报错。 b	二进制模式。  
   2、 +:打开一个文件进行更新(可读可写)。 U	通用换行模式(不推荐)。 r	以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
   3、 rb: 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。   
  4、r+:打开一个文件用于读写。文件指针将会放在文件的开头。   
  5、rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。   
  6、w :打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。   
  7、wb	: 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
  8、w+	:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。   
  9、wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
  10、a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
 11、ab	:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
 12、a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
 13、ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。   




7、属性描述
file.closed:	返回true如果文件已被关闭,否则返回false。
file.mode:	返回被打开文件的访问模式。
file.name:	返回文件的名称。
file.softspace:	如果用print输出后,必须跟一个空格符,则返回false。否则返回true。



8、file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数:
序号	方法及描述
1)file.close():关闭文件。关闭后文件不能再进行读写操作。
2)	file.flush():刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
3)file.fileno():返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
4)file.isatty():如果文件连接到一个终端设备返回 True,否则返回 False。
5)file.next():返回文件下一行。
6)file.read([size]):从文件读取指定的字节数,如果未给定或为负则读取所有。
7)file.readline([size]):读取整行,包括 "\n" 字符。
8)file.readlines([sizeint]):读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。
9)file.seek(offset[, whence]):设置文件当前位置
10)file.tell():返回文件当前位置。
11)file.truncate([size]):截取文件,截取的字节通过size指定,默认为当前文件位置。
12)file.write(str):将字符串写入文件,返回的是写入的字符长度。
13)file.writelines(sequence):向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值