基于Itchat,微信远程访问电脑文件
设计思路
- 用户输入用户名和密码后遍历当前硬盘分区
- 为每一个路径和文件建立索引
- 区分路径和文件,以便于查看
- 每次显示内容包括当前路径下所有文件和文件夹,以及前一级路径
如
-1:dir:D:
0:dir:$RECYCLE.BIN
1:dir:altera
2:dir:AMD
3:dir:Config.Msi
4:dir:iTudou
5:dir:MSOCache
6:dir:Program Files
7:dir:Program Files (x86)
8:dir:PythonAll
9:dir:SoftwareDistribution
10:dir:System Volume Information
11:dir:WindowsApps
12:dir:WpSystem
13:dir:WUDownloadCache
14:dir:Youku Files
15:dir:zjq
- -1表示前一级路径
- 0,1,…表示当前文件和文件夹的索引
- dir表示文件夹
file表示文件
遍历计算机所有盘符
def initOSpath():
# path = os.popen("wmic VOLUME GET Label").read()
# path = path.split()
# t_OSpath = {}
# for i in range(len(path)):
# t_OSpath[str(i)]=['dir', path[i].decode('gbk')]
# t_OSpath['0'][1]=u'系统'
drive={}
j=0
for i in range(65,91):
t_path=chr(i)+':'
if os.path.isdir(t_path):
drive[str(j)] = ['dir', t_path.decode('utf-8')]
j+=1
return drive
上面的程序中被注释的部分是获取计算机分区的名字(本地磁盘、software、projects…),下面的部分是获取盘符(C:、D:…)
由于获取盘符和驱动号顺序不一致,不知道该如何对应上,所以就只获取了驱动号,没有加分区的名字,如有哪位兄弟有解决办法请留言
数据结构
- 用字典存储路径信息和路径类型信息(dir or file)
- key:’-1’的值是一个二维list
list[0]是一个字符串,表示路径类型信息(文件夹或文件)
list[1]是一个一维list,用来存储每一级路径的文件夹名字 - key:’0,1,…’的值是一个一维list
list[0]表示文件类型
list[1]表示当前路径名称
关键函数列表
- os.listdir(path) :遍历路径
- os.path.isdir :判断是否为路径
- itchat.send_msg :向微信发送消息
- itchat.send_file :向微信发送文件
注意事项
* 考虑到中文目录和文件夹,路径数据应该用unicode字符,utf-8调试时是乱码
* os.listdir函数接收的路径应该是unicode编码,其返回的路径也是unicode编码
* os.popen返回的信息是gbk编码,应该解码成unicode
- 整个工程比较简单,只有一个文件,CSDN下载地址下载
- 刚学编程不久,代码结构比较乱,不过看见自己一点点在进步还是很欣慰的,如果有高手愿意指点,一起交流学习就更好了
- 后续修改建议,对于大文件可以发送到指定的邮箱