python实现windows与linux之间文件传输

因为一些特殊需求(也可能是太闲),我需要使用python生成自定义的文件,通过windows10的系统命令传到我的远程centos7服务器。这个工具中我使用了python的界面库,使得通过一个图形界面去点一下就能帮我完成传输,要实现的功能很简单,但是实现的过程很有趣,接下啦我就在这里做一下记录。

前提条件

  • 操作系统:新版windows10(因为新版的增加了一些字符命令,比如scp)
  • python3版本:推荐在windows10应用商店直接下载,或在字符界面直接输入python3,会自动跳转
  • 工具依赖的库:tkinter(如果是以上方法安装的python3默认已经安装)
  • 因为是跨主机的文件传输,所以事先需要做好服务器间基于key验证(不了解的同学可自行百度)

实现代码

# coding: utf-8
from tkinter import *
# 导入ttk
from tkinter import ttk
# 导入os模块,用来执行宿主机命令
import os
class App:
    def __init__(self, master):
        self.master = master
        self.initWidgets()
    def initWidgets(self):
        # 创建style对象,用来管理ttk组件样式
        style = ttk.Style()
        style.configure("fkit.TPanedwindow", background="darkgray", relief=RAISED)
        pwindow = ttk.Panedwindow(self.master,
            orient=VERTICAL, style="fkit.TPanedwindow")
        pwindow.pack(fill=BOTH, expand=1)
    	# 创建Panedwindow组件,通过style属性设置分割线
        self.first = Label(pwindow, text="hekko world", height=2, font=('Verdana',10), fg='green')
    	# 调用add方法添加组件,每个组件占一个区域
        pwindow.add(self.first)
        # 创建button按钮
        okBn = Button(pwindow, text="on", width=30, height=2, bg='pink', fg='black',
            command=self.open_on  # 点击按钮调用self.open_on实例
            )
        okBn2 = Button(pwindow, text="off", width=30, height=2, bg='pink', fg='black',
            command=self.open_off  
            )
        okBn3 = Button(pwindow, text="reboot", width=30, height=2, bg='pink', fg='black',
            command=self.open_reboot  
            )
        okBn4 = Button(pwindow, text="Enter", width=30, height=2, bg='pink', fg='black',
            command=self.open_enter  
            )
        # 调用add方法加入这些button
        pwindow.add(okBn)
        pwindow.add(okBn2)
        pwindow.add(okBn3)
        pwindow.add(okBn4)
    def files(self,str):
    	hi = open("test.txt","w")
    	hi.write( str )
    	hi.close()
    	self.first['text']='已写入内容:'+str
    def open_on(self):
        str = "on"
        self.files(str)
        return 0
    def open_off(self):
        str = "off"
        self.files(str)
        return 0
    def open_reboot(self):
        str = "reboot"
        self.files(str)
        return 0
    def open_enter(self):
        # 传送本地文件到远程服务器,填入远程服务器的ip地址
        os.system('scp -P 1919 test.txt [email protected]:/data')
        self.first['text']='传输结果:成功'
        return 0
root = Tk()
root.title("服务器间文件传输")
App(root)
root.mainloop()

效果如图:

功能介绍:

  1. 点击前三个按钮会在执行脚本的目录生成一个test.txt的文件,如果点的是on,文件内容就是on,依次类推。对脚本稍加修改,就可以自定义写入的内容
  2. 生成文件以后第一行的标签,会显示“已生成内容:on”,点击不同按钮结果显示内容不同
  3. 当文件已经生成以后点击Enter按钮,会把生成的文件发送到指定服务器

结语:

有不懂的地方请留言,我们共同进步

发布了40 篇原创文章 · 获赞 59 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_44208042/article/details/96988416