一、with语句

上下文管理器: 打开文件,执行完with语句内容之后,会自动关闭文件
对象

with open('/tmp/file') as  f:
	print(f.read())
		## with语句的作用就相当于在open后面自动加上close
	
f = open('/tmp/file','r')
print(f.read())
f.close()

python两个文件共同运行cpu python打开两个文件_python

同时打开两个文件对象(这种写法在python2中不支持)

with open('/tmp/file') as f1,\
open('/tmp/file1','w+') as f2:                                   				

f2.write(f1.read())				 ## 将第一个文件的内容写入第二个文件中
f2.seek(0)						## 	移动指针到文件最开始
print(f2.read())

python两个文件共同运行cpu python打开两个文件_绝对路径_02

在python2中
不能同时用with打开俩个文件只能分别打开

with open('/tmp/passwd') as f1:
	content = f1.read()
	with open('/tmp/passwdbackup','w+') as f2:
	f2.write(content)

文件操作练习
创建文件data.txt,共100000行,每行存放一个1~100之间的整数
用open 、 close的方式:

import random
		f = open('data.txt','w+')
		for i in range(100000):
		    f.write(str(random.randint(1,100)) + '\n')
		
		f.seek(0)
		print(f.read())
		f.close()

python两个文件共同运行cpu python打开两个文件_python两个文件共同运行cpu_03


使用with语句:

import random
	with open('data.txt','w+') as f:
	 for i in range(100000):
    f.write(str(random.randint(1,100)) + '\n')
    f.seek(0)
    print(f.read())

python两个文件共同运行cpu python打开两个文件_python_04

二、os模块

1.返回操作系统类型
值为:posix,表示linux操作系统 如果nt,是windows操作系统

import os
		print(os.name)

python两个文件共同运行cpu python打开两个文件_文件名_05


2.操作系统详细信息

info = os.uname()
		print(info)						## 显示当前操作系统的所有信息
		print(info.sysname)				## 显示当前的操作系统
		print(info.nodename)			## 显示当前主机名称

python两个文件共同运行cpu python打开两个文件_绝对路径_06

3.环境变量

print(os.environ)		## 显示当前系统环境变量

python两个文件共同运行cpu python打开两个文件_python_07


4.通过key值获取环境变量对应的value值

print(os.environ.get('PATH'))

python两个文件共同运行cpu python打开两个文件_python两个文件共同运行cpu_08

三、操作系统

1.判断是否是绝对路径

import os
	import random
	from os.path import exists,splitext,join
	
	print(os.path.isabs('/tmp/hello'))
	print(os.path.isabs('hello'))
			##  只会对路径进行判定,路径的目录或文件是否真是存在不影响判断结果

python两个文件共同运行cpu python打开两个文件_绝对路径_09


如上图所示可以准确判断是否是绝对路径,但文件或目录 ‘hello’是否存在不影响路径的判断

python两个文件共同运行cpu python打开两个文件_文件名_10

2.生成绝对路径

print(os.path.abspath('file'))		## 在当前路径下,生成存放file的绝对路径
	print(os.path.join('/home/kiosk','file'))	## 用join的方法生成存放file的绝对路径
	print(os.path.join(os.path.abspath('.'),'file'))

python两个文件共同运行cpu python打开两个文件_python_11


3.获取目录名或者文件名

filename = '/home/kiosk/PycharmProjects/20190622/day06/file'

获取路径中的文件名

print(os.path.basename(filename))

获取路径中的目录名

print(os.path.dirname(filename))

python两个文件共同运行cpu python打开两个文件_python_12

4.创建目录/删除目录
创建目录

os.mkdir('HAHA')		## 创建目录HAHA

python两个文件共同运行cpu python打开两个文件_python两个文件共同运行cpu_13

创建递归目录

os.makedirs('img/file')
	os.rmdir('HAHA')

python两个文件共同运行cpu python打开两个文件_python_14

6.文件重命名

os.rename('data.txt','data1.txt')

python两个文件共同运行cpu python打开两个文件_绝对路径_15

7.判断文件或目录是否存在
可以判断相对路径或绝对路径
返回的是bool值

print(os.path.exists('img'))
	print(os.path.exists('HAHA'))

python两个文件共同运行cpu python打开两个文件_python两个文件共同运行cpu_16

8.分离后缀名和文件名

print(os.path.splitext('data.txt'))

python两个文件共同运行cpu python打开两个文件_python_17

9.将目录名和文件名分离

print(os.path.split('/tmp/ips.txt'))

python两个文件共同运行cpu python打开两个文件_python_18

遍历目录

遍历指定目录下的所有内容

import os
	from os.path import join
	
	for root,dir,files in os.walk('/var/log'):
	     print(root)					## 打印该目录下的用户
	     print(dir)						## 打印该目录下的目录
	     print(files)					## 打印该目录下的文件
	    for name in files:
	        print(join(root,name))

python两个文件共同运行cpu python打开两个文件_python两个文件共同运行cpu_19

四、时间之间的转换

把元组时间转换为时间戳

import time
	import os
	tuple_time = time.localtime()
	print(tuple_time)
	print(time.mktime(tuple_time))

python两个文件共同运行cpu python打开两个文件_文件名_20

把元组时间转换成字符串时间

print(time.strftime('%m-%d',tuple_time))
	 print(time.strftime('%Y-%m-%d',tuple_time))
	 print(time.strftime('%T',tuple_time))
	 print(time.strftime('%F',tuple_time))
	 					##   时间显示格式的参数参照 date

python两个文件共同运行cpu python打开两个文件_python两个文件共同运行cpu_21

将时间戳类型转换为字符串时间

pwd_time = os.path.getctime('/etc/passwd')
	 print('pwd_time',pwd_time)
	 print(time.ctime(pwd_time))

python两个文件共同运行cpu python打开两个文件_绝对路径_22


将时间戳转换为元组

print(time.localtime(pwd_time))

五、第三方模块

安装pip
导入qrcode生成二维码

import qrcode
	
	img = qrcode.make('http://www.baidu.com')
	img.save('hello.png')

执行完成没有报错就会在当前目录下生成一个图片文件hello.png,打开后就是我们生成的二维码

python两个文件共同运行cpu python打开两个文件_python两个文件共同运行cpu_23

可能会提示缺少模块PIL错误,那就需要下载PIL模块

PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。

由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3,又加入了许多新特性,因此,我们可以直接安装使用Pillow。

我这里安装的是python3,使用pip3下载,没有配置的可以直接cd到python3安装目录下的二进制文件直接执行

./pip3 install Pillow

python实现微信接口————itchat模块

import itchat
import time
import random
 
		### 实现扫码微信临时登陆,加入hotReload=True参数可以保留一段时间,
							该参数生成一个静态文件itchat.pk1用于存储登陆状态
itchat.auto_login(hotReload=True)
 
## 实现发送消息
while True:
    # 发送消息或者文件给微信文件传输助手
    # 发送消息
    itchat.send('hello', toUserName='filehelper')
    # 发送文件
    itchat.send_file('/etc/passwd', toUserName='filehelper')
    time.sleep(random.randint(1, 3))  
    					##  需要有间隔时间的发送,不然会一直发

统计男女以及其他人数

## itchat的get_friends方法获取好友信息
	friends = itchat.get_friends()		 
	info = {}
	 
	for friend in friends[1:]:
	    if friend['Sex'] == 1:
	        info['male'] = info.get('male', 0) + 1
	    elif friend['Sex'] == 2:								## 男1女2
	        info['female'] = info.get('female', 0) + 1
	    else:
	        info['other'] = info.get('other', 0) + 1
	print(info)

需求:给文件助手发送消息,执行发送的内容
1.如果执行成功,现实执行结果
2.如果执行失败,现实执行失败

import os
	import itchat
	
	@itchat.msg_register(itchat.content.TEXT,isFriendChat=True)
	def text_reply(msg):
	    if msg['ToUserName'] == 'filehelper':
	        #获取要执行的命令内容
	        comand = msg['Content']
	        #系统执行代码
	        if os.system(comand) == 0:
	            res = os.popen(comand).read()
	            result = '[返回值]-命令%s执行成功,执行结果: \n' + res
	            itchat.send(result,'filehelper')
	        else:
	            result = '[返回值]-命令%s执行失败,请检查命令: \n' %(comand)
	            itchat.send(result,'filehelper')
	
	itchat.auto_login()
	itchat.run()