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):向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。