用python 怎么和硬件进行链接,通信,交互?
作者&投稿:表鬼 (若有异议请与网页底部的电邮联系)
同问求答,列如sd或tf卡。
我刚知道一个DVR设备可通过配置网卡地址再用USB连接电脑,这时可以用xshell或secureCRT连接地址192.168.2.1访问DVR的内置系统。此时使用Python+paramiko跟它发送或接收命令。
在cmd里运行这个交互式程序
然后其他就和python和cmd下的程序打交道一样了
比如:
开本机telnet或ssh服务
通过python telnet或ssh到本机,荣国write启动这个交互式程序,开始write and receive就好
一.文件处理
1.介绍
计算机系统:计算机硬件,操作系统,应用程序
应用程序无法直接操作硬件,通过操作系统来操作文件,进而读/写硬件中的文件。
python打开文件过程:
#打开
f=open('a.txt','r')
#通过句柄对文件进行操作
read()_f=f.read()
#关闭文件
f.close()
with open('a.txt','r') as f: #不需要关闭
f.close() #回收操作系统打开的文件
del f #回收应用程序级的变量
2.打开文件的模式
a.打开文本文件
#r,只读模式【默认模式,文件必须存在,不存在则抛出异常】
f=open('a.txt',encoding='utf-8')
data1=f.read()
print(f.readline(),end='')
print(f.readlines())
#w,只写模式【不可读;不存在则创建;存在则清空内容】
f=open('a.txt','w',encoding='utf-8')
f.write('werf')
#a,只追加写模式【不可读;不存在则创建;存在则只追加内容】
f=open('a.txt','a',encoding='utf-8')
f.write('werf\n')
b.对于非文本文件,只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式
with open('1.jpg','rb') as f_read:
data=f_read.read()
print(data)
with open('a.txt','rb') as f_read:
data=f_read.read().decode('utf-8') #解码
print(data)
with open('a.txt','wb')as f_write:
f_write.write('adsf'.encode('utf-8'))
'''
练习,利用b模式,编写一个cp工具,要求如下:
1. 既可以拷贝文本又可以拷贝视频,图片等文件
2. 用户一旦参数错误,打印命令的正确使用方法,如usage: cp source_file target_file
'''
import sys
if len(sys.argv)!=3:
print('usage:cp source_file target_file')
sys.exit()
source_file,target_file=sys.argv[1],sys.argv[2]
print()
with open(source_file,'rb')as f_read,open(target_file,'wb')as f_write:
for line in f_read:
f_write.write(line)
3.文件内光标的移动
#以文本模式读文件,n代表的是字符的个数
with open('a.txt','r')as f_read:
data=f_read.read(6)
print(data)
#以b模式读文件,n代表的是字节的个数
with open('a.txt','rb')as f_read:
data=f_read.read(6)
print(data)
# tell:告诉当前光标的位置
with open('a.txt','r',encoding='utf-8')as f_read:
data=f_read.read(4)
data1=f_read.tell()
print(data,data1)
# seek:移动光标(0:文件开头默认;1:文件当前光标;2:文件末尾)
with open('a.txt', 'r', encoding='utf-8')as f_read:
data = f_read.seek(3)
data1 = f_read.read()
print(data, data1)
# 实现tail功能
import time
with open('access.log', 'rb')as f_read:
f_read.seek(0,2)
while True:
line = f_read.readline()
if line:
print(line.decode('utf-8'),end='')
else:
time.sleep(1)
4.文件的修改
import os
with open('a.txt') as read_f,open('.a.txt.swap','w') as write_f:
for line in read_f:
line=line.replace('alex','SB')
write_f.write(line)
os.remove('a.txt')
os.rename('.a.txt.swap','a.txt')
始甘利必: 同问求答,列如sd或tf卡. 我刚知道一个DVR设备可通过配置网卡地址再用USB连接电脑,这时可以用xshell或secureCRT连接地址192.168.2.1访问DVR的内置系统.此时使用Python+paramiko跟它发送或接收命令.
密山市19660549482: python可以控制硬件吗? - ?
始甘利必: 可以. Python为一种跨平台的计算机程序设计语言.面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发. 提供API(Application Programming ...
密山市19660549482: 如何用 python 读取硬件信息 - ?
始甘利必: 在LINUX下, *NIX 嘛. 硬件信息都在 info 文件里, 直接读取文本文件就行了.:f = open("/proc") print(f.readlines()) f.close() 在windows下, win32 扩展调用WINDOWS的API应该可以做到.:import os, csv fp = os.popen("wmic cpu list /format:csv") for i in csv.reader(fp): print i
密山市19660549482: python怎么与ssdb进行交互 - ?
始甘利必: 在centos 7上使用python3.5, 系统本身带有python2.7, 自己没有将默认的python从2.7链接为3.5. 然后安装python3使用的包: ssdb, 安装方式 pip3 install ssdb,或者 直接下载包源文件,进入文件内,安装 python3 setup.py install .
密山市19660549482: python 可以直接控制硬件吗 - ?
始甘利必: 内存和CPU算不算硬件,显示器算不算硬件,硬盘算不算硬件,你会用PYTHON写程序控制这些吗,当然能吧,第一天学的pritn('hello')就控制显示器了.
密山市19660549482: python连接数据库传参到连接语句 - ?
始甘利必: cmd.exe/cxxx可以用来执行子命令.importsubprocessr=subprocess.check_output(["cmd.exe","/c","ver"])printr
密山市19660549482: 如何用python实现获取计算机上的硬盘名 - ?
始甘利必: 使用Python获取电脑的磁盘信息需要借助于第三方的模块psutil,这个模块需要自己安装,纯粹的CPython下面不具备这个功能.在iPython交互界面中进行如下演示:查看电脑的磁盘分区:In [1]: import psutil In [2]: psutil.disk_partitions() Out[2]: [...
密山市19660549482: python 原理及用法? - ?
始甘利必: Python解释执行原理 这里的解释执行是相对于编译执行而言的.我们都知道,使用C/C++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制的可执行文件.运行该程序...
密山市19660549482: 求解答:Arcpy如何实现python与Arcgis的连接? - ?
始甘利必: 肯定是对已有的功能进行引用,arcgis中所有的功能都能通过python进行调用,当然,使用python的目的是定制自己需要的工作流,为用户处理自己的数据提供便捷.
密山市19660549482: 我会Python,且第三方系统有接口,我应该如何通过Python去调用第三方系统的接口,进行对接? - ?
始甘利必: 接口会有配套的文档,比如接口功能,调用方式、参数说明等等,没有文档凭空哪操作的了,除非人家开源给你.