1.文件的读取和操作

文件操作的三种情况:打开文件,操作文件(读写),关闭文件

在python语言中,默认open()是打开文件且是只读模式

操作步骤:

1)查看文件是否存在;

2)如果不存在,先创建文件;

3)如果存在,且是w模式时,操作前,会把原先的内容情况,然后再写进去新的内容

(1)w(只写)的模式每次操作前,会清空文件里面的内容,然后把新的内容写进去

f=open('log.txt','w')
f.write('hello world')
f.close()

在原先的log.txt文件中的内容如下图所示:

Python常用库和IO操作笔记2_打开文件

w模式的输出结果:

Python常用库和IO操作笔记2_python语言_02

(2)a的模式是追加模式,就是在之前文件内容的基础上增加新的文件内容

f=open('log.txt','a',encoding='utf-8')
f.write(' go语言')
f.close()

 

输出结果:

Python常用库和IO操作笔记2_python语言_03

 

 (3)r(只读),来读取文件里面的内容

1)读取文件的所有内容

'''读取文件的前提是文件必须存在'''
f=open('log.txt','r',encoding='utf-8')
print('读取文件的所有内容:',f.read())
f.close()

输出结果:

Python常用库和IO操作笔记2_打开文件_04

 

 2)读取文件的第一行

原先的log.txt如下:

Python常用库和IO操作笔记2_读取文件_05

'''读取文件的前提是文件必须存在'''
f=open('log.txt','r',encoding='utf-8')
# print('读取文件的第一行:',f.readline())
f.close()

r模式的输出结果:

Python常用库和IO操作笔记2_io操作_06

 

 3)按行读取文件的所有内容

Python常用库和IO操作笔记2_打开文件_07

 

 没有strip()之前的输出结果,行与行之间有空格:

Python常用库和IO操作笔记2_python语言_08

所以加上strip()是为了取消掉空格

'''读取文件的前提是文件必须存在'''
f=open('log.txt','r',encoding='utf-8')
'''按行读取文件的所有内容,strip()取消掉空格'''
for item in f.readlines():
    print(item.strip())
f.close()

 

输出结果:

Python常用库和IO操作笔记2_io操作_09

 

(4)with上下文,内部会进行文件的关闭处理(a、r、w三种情况的操作一样)

注意:open()文件一定要进行close()操作,但是很多时候我们会忘记,此时就可以用with上下文来解决这种情况

with open('../IO操作/log.txt', 'r', encoding='utf-8') as f:
    print(f.read())

输出结果:

Python常用库和IO操作笔记2_python语言_10

2.python常用库

(1)sys实战

import os
import sys

'''提示first模块不存在,找不到错误的解决方案'''
base_dir=os.path.dirname(os.path.dirname(__file__))
#将zero这层目录级别添加到路径搜索中
sys.path.append(os.path.join(base_dir,'zero'))

for item in sys.path:
    print(item)
#进行了如上操作后,导包的时候就不用加上zero这层目录级别
from first import login
login()

输出结果:

Python常用库和IO操作笔记2_io操作_11

 (2)hashlib实战(涉及到md5加密算法)

from urllib import parse
import hashlib
import time

'''开放接口(open api)'''

def sigh():
   #第一步:进行ascll码的排序,加了时间time使得后面md5加密的内容变成动态的显示形式
   #time:获取当前时间,并返回一个当前人类可读方式的字符串
dict
={'name':'liuxun','age':20,'address':'xian','time':time.time()} data=sorted(dict.items(),key=lambda item:item[0])
   #第二步:进行urlencode的处理成key1=value1&key2=value2 data1
=parse.urlencode(data)
   #第三步:进行md5的加密 m
=hashlib.md5() m.update(data1.encode('utf-8')) print(m.hexdigest()) sigh()