当前位置:首页 » 文件管理 » ftpsync

ftpsync

发布时间: 2022-09-25 01:35:41

❶ FREEBSD 怎么安装软件

1.ports安装

切换到软件相应目录下,make install clean 即可。

这种安装比较方便,需要维护ports。

国内常用的CVSUP更新站点,

cvsup.FreeBSDChina.org 中国电信 上海市
cvsup2.FreeBSDChina.org 中国联通 浙江省杭州市
cvsup3.FreeBSDChina.org 中国电信 上海市
cvsup4.FreeBSDChina.org 中国网通 北京市
cvsup5.FreeBSDChina.org 中国教育网 北京市

详情见
http://www.freebsdchina.org/mirrors.php

2.pkg_add 安装(速度最快)

如果怕编译慢的话,可以直接用pkg_add 快速安装。

环境变量设置,在 /etc/csh.cshrc添加:

setenv PACKAGEROOT
ftp://ftp.freebsdchina.org
(设自己近的远程主机)

如: pkg_add -r vsftpd (从远程主机下载译好的安装包来安装) .

有个缺点就是安装时的参数不能自定义,不太灵活,适用于要求不高的环境。

3.源代码安装

下载软件源代码到本地,通过下面三个经典步骤来安装。

./configure
make
make install

比较灵活,也这需要一定的操作能力来排除在安装过程中出现的一些问题。

这三种方法的前两种用下面命令查看安装信息(第三则无),并在将来不用时很容易卸载干净。

pkg_info | grep ***

第三种在不用时直接把安装目录删除即可(最好在编译的时候用--prefix参数指定安装路径,在将来好管理),但不太容易卸载干净。

❷ 怎么安装sublime 插件ftpsync

安装 FTPSync
打开工具列 Preferences → Package Control 输入 install Package 按 ENTER
再输入 FTPSync 按 ENTER 安装
设置、执行 FTPSync :
[1] 建立一个文件夹,举例的我就建立在桌面上:

建立一个文件夹

建立一个文件夹
2、打开sublime,菜单中打开 Project - Add Folder to Project

Project - Add Folder to Project
3、选择您刚刚建立的文件夹

选择您刚刚建立的文件夹
4、在左侧出现的文件夹上右键选择FTPSync ->Setup FTPSync in this folder,如果出现不能选择的情况,请重新启动sublime,即可选择:

Setup FTPSync in this folder
5、这时候会出现一个ftpsync.settings,然后将该文件设置正确,即可实现功能了,可以对你刚加入的 Project 上按右键 FTPSync → Download 下载 FTP上的程序文件

ftpsync.settings
6、下载:

FTPSync → Download
参考配置文件:

{
// HELP / INFO moved to bottom
// Remove "//" to uncomment settings directive
"default": {
"host": "ftp.example.com", //这里需要设置
"username": "your_login", // or null for anonymous login 这里需要设置
"password": "your_password", //这里需要设置
"path": "/",
"upload_on_save": true // set *false* if you do not want to upload on save!
// "port": 21,
// "tls": false,
// "timeout": 30, // [seconds]
// "passive": true,
// "download_on_open": false,
// "overwrite_newer_prevention": true,
// "default_folder_permissions": "755",
// "default_upload_permissions": null, // null = no action taken
// "time_offset": 0, // [seconds]
// "always_sync_local_permissions": true,
// Value "auto" = use UTF-8 if availible (FEAT: UTF8), otherwise use local
// "encoding": "auto",
// Trade small performance impact for more stable and secure transfer (old file is intact until the download is finished)
// "use_tempfile": true,
// Regular expression, recommending using \b in general and /.../ for folders to avoid matching substrings
// "ignore": "",
// Can be used for increase of performance or to allow build scripts to finish
// "upload_delay": 0, // [seconds]
// Only if the server has MFMT extension installed
// "set_remote_lastmodified": true,
// Chmod value for files newly downloaded by FTPSync
// "auto" = same as on server
// null = no action taken
// "0644" = example for direct value
// "default_local_permissions": "auto",
// List of lists with pathnames and filenames to folders to be watched for change in between delay (upload_delay)
// example: after_save_watch: [ [ "code/assets/css", "*.css" ], [ "code/assets/", "*.jpg, *.png, *.gif" ] ]
// used only in conjunction with upload_on_save and upload_delay **
// For more info see https://github.com/NoxArt/SublimeText2-FTPSync/wiki/Why-and-how-to-use-afterwatch
// "after_save_watch": []
}
// ------ INFO ----------------------------------------------------------------------
// Index page
// --- https://github.com/NoxArt/SublimeText2-FTPSync/
// For settings description see:
// --- https://github.com/NoxArt/SublimeText2-FTPSync/wiki/All-settings
// For more info see:
// --- https://github.com/NoxArt/SublimeText2-FTPSync/wiki/_pages
// Want to ask? Report a bug?
// --- Hit: https://github.com/NoxArt/SublimeText2-FTPSync/issues/new
// ** Commas **
// Don't forget about commas -> each entry needs a comma at the end of line EXCEPT the last (uncommented) entry
// For precise info see http://www.json.org
// Also try http://jsonlint.com
// ** Comments **
// The "//" are so called "comments", all text after it is ignored,
// they are used for notes or deactivating an entry
// Non-basic settings are deactivated and default options specified in the global settings file,
// that is $packages$/FTPSync/ftpsync.sublime-settings (where $packages$ is a path where Sublime
// keeps packages in your Operating System) accessible via Preferences > Package Settings > FTPSync
// Use Settings - User to override the global defaults
// More info about Sublime Text 2 settings on http://www.sublimetext.com/docs/2/settings.html
}

❸ FTPSync好不好

BatchSync FTP是一款ftp服务器之间的高速备份工具,可以用来快速同步数据,备份网站内容,制作镜像网站等,也可以通过计划任务的方式实现无人职守工作,另外还可以作为系统的一项服务,就算没有用户登录电脑,它也可以工作 。针对站长管理网站来说,还是很方便的。

❹ 跪求大神给个ftp synchronizer破解版,小弟不胜感激!

前言:此版本的软件安装包附加破解教程我可以给您一份,不过仅供个人使用,切勿传播,希望可以帮助您

FTP Synchronizer安装教程

1、使用本站本站提供的网络网盘下载并解压好文件,如下图所示。

2、双击“ftpsync-pro.exe”主程序运行,在安装向导界面节点点击“next”。

3、在许可协议界面,选择“T Accept”,点击“next”。

4、选择好软件安装路径,点击“next”。

5、选择需要创建的快捷方式,点击“next”。

点击下载ftp synchronizer破解版

❺ 求助hexo ftp 部署错误

直接用ftpsync了,不用hexo-deployer-ftpsync。

我知道了,是因为设置参数的时候:remote: ./demo 必须这样设置,而且在hexo的_confg.yml里需要在plugin里添加hexo-deployer-ftpsync

❻ sublime text 怎么添加python

Sublime Text 3 (ST3) 是一个轻量级的跨平台文字编辑器,尤以其轻快的速度,易用性和强大的社区支持而着称。它一经面世便被认为是一个杰出的编辑器,而它真正的强大之处在于你可以使用 Package Control 来增加它的功能以及可以进行各种自定义设置。
在本文章中,我们将会看到如何将 Sublime Text 打造成为 Python 的全栈开发环境(从前端到后端),如何通过自定义主题和插件来增强它的基本功能,并且还将会涉及到很多使 ST3 变得更加强大的常用的命令,特性以及快捷键。

本教程将假定你使用的是 Mac 电脑并且习惯于使用终端。如果你使用的是 Windows 或者 linux 操作系统,本文涉及到的一些命令将有可能会有所不同,但是你应该仍然可以很容易地通过 Google 来获取到与本教程相关的解答。
在我们开始之前,让我们先讨论一下我所谓的”全栈”具体指的是什么。
在现在的 HTML5 以及移动设备开发中,Javascript 简直无处不在。是的,无处不在!仅仅使用 Python 基于某个框架比如 Django 或者 Flask 进行开发是不够的。如果你想从始至终真正的自己开发一个网站的话,你必须熟悉 Javascript(以及 Javascript 的一大堆的框架),REST API(含状态传输 API),响应式设计,当然还有 HTML 和 CSS,以及其他许多东西。现在让我们来面对一个问题:就像其他任何一个手艺人一样,为了成为一个最厉害的程序员,你的工具必须犀利,你的开发环境必须被打造成全栈开发——那就是我们马上将要开始的工作…
特性
让我们从 ST3 的一些默认特性开始着手吧…
Split Layouts 允许你将你的许多文件放到很多分割开来的视窗中。如果你正在进行以测试为目的的开发(将 Python 代码放在一个视窗中,而测试脚本放在另一个视窗中)或者正在进行前端开发(将 HTML 代码放在一个视窗里,CSS/Javascript 代码放在另一个视窗里)的时候将会非常有用。
Vintage Mode 让你能够在 ST3 中使用 vi 模式。
Chrome-like Tabs 让你在多个文件中切换变得更加方便。
Automatic loading of the last session 帮你自动打开你上次关闭的时候编辑器中所有打开的文件。我总是一直开着 ST3,而且其中打开着一大堆项目——当我重启电脑以后, 它能够自动帮我打开所有的这些文件和文件夹。
Code Snippets 允许你通过一两个简单的关键字就能写出一段常用的代码片(Snippets),从而增加你的生产效率。比如,你只需要打开一个文件,输入 “lorem” 然后敲击 tab 键,就会自动生成一段乱数假文(译者注: 一种用于测试文章或文字在不同字型、版型下看起来的效果等的文字)。又比如在 Python 代码中,你可以输入 “defs” 然后敲击 tab 键,你就能得到一段通用的函数定义。
同时,你还可以点击 Tools > New Snippet 来创建属于你自己的代码片。请参照这个 文档来获取帮助,也可以在 这里 查看我个人用到的一些 snippets。
自定义 Sublime Text 3
在你下载完 ST3 以后…
在命令行中添加 subl 命令
就像 TextMate 的 mate 命令一样,Sublime Text 拥有一个叫做 subl 的命令行工具,可以用来通过终端打开一个文件或者一整个文件夹。
你需要建立一个指向 subl 二进制文件的符号链接来使 subl 命令有效:

Python

1

$ ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" ~/bin/subl

尝试使用以下命令来打开 Sublime 来确保链接生效了:

Python

1

$ subl

如果以上命令没有效果,你可能需要将 /bin 添加到你的环境变量中:

Python

1

$ echo "export PATH=~/bin:$PATH" >> ~/.profile

然后重新尝试第一步。
如果你仍然遇到问题,尝试查看 这篇 文章来获取帮助。 或者你可以看看如何在 Windows和 Linux 中建立符号链接。
现在你就可以通过下述命令来打开文件或者文件夹了:

Python

1
2
3
4
5
6
7
8

# open the current directory
$ subl .

# open a directory called tests
$ subl ~/Documents/test

# open a file called text.txt
$ subl test.txt

如果路径中含有空格,你必须使用双引号将路径括起来:

Python

1

$ subl "~/Documents/test/my test file.txt"

想要查询所有可用的命令,请打开帮助文件:

Python

1

$ subl --help

安装 Package Control
为了使用众多的 插件 来扩展 Sublime 的功能,你需要安装一个叫做 Package Control 的插件管理器——这个东西你必须要手动安装。但是一旦你安装好了以后,你就可以使用 Package Control 来安装,移除或者升级所有的 ST3 插件了。
点击 这里 从 Sublime Text 3 官方获取用于安装的代码。依次点击 View > Show Console 打开 ST3 的控制台。在控制台中粘贴刚才的代码,然后点击回车。最后重启 ST3。
现在你可以通过快捷键 cmd+shift+P 打开 Package Control 来安装其他的插件了。输入 install 然后你就能看见屏幕上出现了 Package Control: Install Package,点击回车然后搜索你想要的插件。
其他一些相关命令如下:
List Packages 显示所有已安装的插件
Remove Packages 移除一个指定的插件
Upgrade Package 更新一个指定的插件
Upgrade/Overwrite All Packages 更新所有已安装的插件
请查阅官方 文档 获取更多的命令。

创建自定义配置文件
你可以通过一个基于 JSON 的配置文件来充分的自定义 Sublime Text,这使得转移或者同步你的自定义文件到另一个系统变得非常容易。首先,我们需要新建我们自己的配置文件。我们最好是为不同的系统环境和编程语言各自创建一个配置文件。
依次点击 Sublime Text > Preferences > Settings – User 来创建一个配置文件。在该文件中添加一个空的 JSON 类然后就可以在其中写入你的配置内容了。如下所示:

Python

1
2
3
4
5
6
7

{
// base settings
"auto_complete": false,
"sublimelinter": false,
"tab_size": 2,
"word_wrap": true
}

如果想为特定的编程语言新建配置文件的话,请点击 Sublime Text > Preferences > Settings – More > Syntax Specific – User。然后按照 LANGUAGE.sublime-settings 的格式保存该配置文件。例如想新建一个 Python 专用的配置文件,请将该文件保存为 Python.sublime-settings。
你完全可以按照你自己的喜好来进行各项配置;不过我强烈推荐以我的这份 配置文件 以及 Python 配置 作为基础,然后修改成你所需要的内容。
一个可选项: 你可以使用 Dropbox 来同步你的所有配置。你只需要将你的配置文件上传到 Dropbox 然后就可以将你的配置同步到你的任意一台设备上了。
你可以在 Sublime Text Unofficial Documentation 找到一些非常好的参考配置。
主题
ST3 为你提供了完全自定义化一个适合自己主题的能力。当然,你如果不是那么的挑剔的话,你可以通过 Package Control 从许许多多的由 Sublime 社区设计的 主题 中下载一个。 在下载之前你可以通过 ColorSublime 来预览这些主题。
广受欢迎的的 Soda Dark 和极简风格的 Flatland 是我个人最喜欢的两个主题。
在安装完了主题以后, 请务必更新你的配置文件. Sublime Text > Preferences > Settings – User:

Python

1
2
3
4

{
"theme": "Flatland Dark.sublime-theme",
"color_scheme": "Packages/Theme - Flatland/Flatland Dark.tmTheme"
}

插件
除了那些主题以外,我还会使用以下这一些插件来提升我的工作效率。
SideBarEnhancements
SideBarEnhancements 扩展了侧边栏中菜单选项的数量,从而提升你的工作效率。诸如”New file” 和 “Duplicate” 这样的选项对于 ST3 来说实在是太重要了, 我甚至觉得 ST3 本来就应该提供这些功能。而且仅凭 “Delete” 这一个功能就让这个插件值得下载。这个功能将你会在你删除文件的时候把它放入回收站。虽然这个功能乍一看没什么用,但是当你没有使用这样的功能而彻底删除了一个文件的时候,除非你用了版本管理软件,否则你将很难恢复这个文件。

现在就下载吧!
Anaconda
Anaconda 是一个终极 Python 插件。它为 ST3 增添了多项 IDE 类似的功能,例如:
Autocompletion 自动完成,该选项默认开启,同时提供多种配置选项。
Code linting 使用支持 pep8 标准的 PyLint 或者 PyFlakes。因为我个人使用的是另外的 linting 工具,所以我会在 Anaconda 的配置文件 Anaconda.sublime-settings中将 linting 完全禁用。操作如下: Sublime > Preferences > Package Settings > Anaconda > Settings – User: {"anaconda_linting": false}
McCabe code complexity checker 让你可以在特定的文件中使用 McCabe complexity checker. 如果你对软件复杂度检查工具不太熟悉的话,请务必先浏览上边的链接。
Goto Definitions 能够在你的整个工程中查找并且显示任意一个变量,函数,或者类的定义。
Find Usage 能够快速的查找某个变量,函数或者类在某个特定文件中的什么地方被使用了。
Show Documentation: 能够显示一个函数或者类的说明性字符串(当然,是在定义了字符串的情况下)

你可以在这里,或者通过 ST3 的 Package Settings: Sublime Text > Preferences > Package Settings > Anaconda > README 来查看所有这些特性。
SublimeCodeIntel 是另外一个非常流行的插件,它的许多特性与 Anaconda 类似。我建议同时也试试它。
Djaneiro
Djaneiro 支持 Django 模版和关键字高亮以及许多实用的代码片(snippets)功能。其中的 snippets 绝对是省时神器。你可以通过很少几个关键字就能创建许多常见的 Django 代码块比如 templates,models,forms,以及 views。请查看官方文档获取 snippets 列表。
我个人非常喜欢的以下两个用于创建 template 的代码片:输入 var 就可以新建 {{ }},而输入 tag 就能新建 {% %}。
requirementstxt
Requirementstxt 可以为你的 requirements.txt 文件提供自动补全,语法高亮以及版本管理功能。
SublimeLinter
SublimeLinter 是 ST3 的一个代码静态检查工具框架(linter)。这个插件本身来说并不包含任何的一个 linter,但是你可以通过在 Package Control 中输入 SublimeLinter-[linter_name] 的方式来安装一个 linter。你可以点击这里查看官方的 linter。同时你还可以在 Package Control 中查看到许多的第三方 linter。请点击这里查看安装说明。
对于 Python 的代码静态检查器,我建议使用 SublimeLinter-pyflakes 和 SublimeLinter-pep8。
与此同时,我也会使用 SublimeLinter-jshint, SublimeLinter-pyyaml, SublimeLinter-csslint,SublimeLinter-html-tidy,以及 SublimeLinter-json。
以上大多数的 linter 都需要先安装一些依赖库才能使用,所以在安装前请务必阅读他们的安装说明。
你可以通过修改用户自定义的 SublimeLinter.sublime-settings 文件来对你的每个 linter 个性化:Sublime Text > Preferences > Package Settings > SublimeLinter > Settings – User. 例如我通过以下代码来忽略 pep8 中的错误和警告:

Python

1
2
3
4
5
6
7
8

"pep8": {
"@disable": false,
"args": [],
"excludes": [],
"ignore": "E501,C0301,W0142,W0402,R0201,E1101,E1102,C0103,R0901,R0903,R0904,C1001,W0223,W0232,W0201,E1103,R0801,C0111",
"max-line-length": 100,
"select": ""
},

GitGutter
GitGutter 让 ST3 能在左边栏的位置显示一个小图标,用以表示在最后一次提交以后,代码是否有追加,修改或者删除。

如果你想让该插件支持分布式的版本管理软件(Git,SVN,Bazaar 和 Mercurial)。请查看 Modific。
FTPSync
FTPSync 能够将你的项目和远程文件进行同步。你只需要打开文件便可以下载更新(如果你的远端文件比本地更加新的话),而且如果你对本地文件做出了修改可以立即同步到远程服务器。这是非常棒的同步本地文件和远程文件的方法。你可以通过以下的方法来添加你的远程服务器:Sublime Text > Preferences > Package Settings > FTPSync > Setup FTPSync.
Sample settings:

Python

1
2
3
4
5
6
7
8
9
10
11

{
'primary': {
host: 'ftp.mywebsite.com',
username: 'johnsmith',
password: 'secretpassword',
path: '/www/',

upload_on_save: true,
tls: true
}
}

我个人喜欢把密码设为 null 因为我不想让我的密码出现在配置文件中。这样 FTPSync 会在我每次保存完文件后要求我输入密码。
AdvancedNewFile
AdvancedNewFile 可以让你在 ST3 中使用简单的几个快捷键便创建一个新的文件夹或者一个新的文件:
你只需要通过几个快捷键便可以打开 AdvancedNewFile 的输入框。然后输入路径和文件名。当你按下回车键后,文件便被创建了。除此之外,如果目标文件夹并不存在的话,该文件夹将会被自动建立。在默认情况下,你创建的文件的路径将会显示在状态栏中。
请查看 Github 上的这篇文档来获取更为详细的使用说明。特别建议请详细阅读TAB自动补全(Tab Completion)以及预定义别名(Predefined Aliases)部分。
我把“cmd+n”设置为了通过 AdvancedNewFile 创建新文件的快捷方式。该快捷键可以通过修改 Key Bindings – User file 来实现 Sublime Text > Preferences > Package Settings > AdvancedNewFile > Key Bindings – User:

Python

1
2
3

[
{ "keys": ["cmd+n"], "command": "advanced_new_file_new"}
]

你也可以更改默认打开的文件夹路径:Sublime Text > Preferences > Package Settings > AdvancedNewFile > Settings – User

Python

1

{"default_initial": "/Users/michaelherman/Documents/repos"}

这样我创建新文件的时候,/Users/michaelherman/Documents/repos将会自动被添加到路径最前方,因为99%的情况下我都会把我的脚本放在这个路径下。
Emmet
Emmet,以前叫做 Zen Coding,让你可以通过简单的缩写来创建 HTML 或者 CSS 的代码块。
例如,你只需要输入感叹号!,然后按下 tab 键,便可以在一个 HTML 文件中创建一段带有几个基本标签的 HTML5 文档类型的代码:

Python

1
2
3
4
5
6
7
8
9
10

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>

</body>
</html>

请查看官方文档或者速查手册获取更多信息。
Markdown Preview
Markdown Preview 可以用来预览和编译 markdown 文件。
你可以打开 Package Manager 然后输入 Markdown Preview 来查看可用的命令:
Markdown Preview: Python Mrakdown: 在浏览器中预览
Markdown Preview: Python Mrakdown: 导出 HTML 文件
Markdown Preview: Python Mrakdown: 拷贝到剪贴板
Markdown Preview: Github风格Markdown: 在浏览器中预览
Markdown Preview: Github风格Markdown: 导出 HTML 文件
Markdown Preview: Github风格Markdown: 拷贝到剪贴板
Markdown Preview: 打开Markdown速查手册
一旦你完成转换,你之后的所有保存都会立即反映到转换的文件中。
快捷键
跳转到任意内容 (“cmd+p”) 用来快速查找和打开文件。你仅仅只需要工程中文件的一部分路径或者文件名你就可以很容易的打开这个文件。这在一个大型的 Django 工程中显得非常方便。
跳转到指定行 (“ctrl+g”) 让你在当前文件中跳转到指定行数。
跳转到标志 (“cmd+r”) 可以列出当前文件中所有的函数或者类,让你更方便查找。你可以通过输入关键字来查找你所需要的函数或者类。
跳转到行首 (cmd+left-arrow-key) 与 跳转到行尾 (cmd+right-arrow-key)
删除当前行(ctrl+shift+k)
多重编辑 是我迄今为止最喜欢的快捷键

Python

1
2

1.选定一个单词,点击 **“cmd+d”** 来选择同样的单词,再次点击 **“cmd+d”** 继续选择下一个单词…
2.或者 **“cmd+单击”** 来指定多个你想要同时修改的地方。

块编辑 (option+left-mouse-click) 用于选择一整块的内容。通常在整理 CSV 文件的时候用于删除空白内容。
如果想了解更多关于快捷键的内容,请看一下这篇文章。
自定义命令
你可以很容易地使用 Python 来编辑你自己的自定义命令和快捷键组合。目前我个人使用的有以下这些:
拷贝当前文件路径到剪贴板 – 链接
关闭除当前活动标签页以外的所有其他标签页 – 链接
通过文件选项打开你的 Package 文件夹(Sublime > Preferences > Browse Packages),然后打开 User 文件夹,接下来将上述的 Python 文件添加到 “/Sublime Text 3/Packages/User” 文件夹中。最后请在 Key Bindings – User file (Sublime Text > Preferences > Package Settings > AdvancedNewFile > Key Bindings – User) 文件中完成快捷键绑定。

Python

1
2
3
4
5
6
7
8
9
10
11
12

[
// Copy file name
{
"keys": ["cmd+shift+c"],
"command": "_path_to_clipboard"
},
// Close all other tabs
{
"keys": ["cmd+alt+w"],
"command": "close_tabs"
}
]

❼ 用python写测试脚本,从本地传文件至ftp远程路径

转自:http://news.tuxi.com.cn/kf/article/jhtdj.htm

本文实例讲述了python实现支持目录FTP上传下载文件的方法。分享给大家供大家参考。具体如下:

该程序支持ftp上传下载文件和目录、适用于windows和linux平台。

#!/usr/bin/envpython
#-*-coding:utf-8-*-
importftplib
importos
importsys
classFTPSync(object):
conn=ftplib.FTP()
def__init__(self,host,port=21):
self.conn.connect(host,port)
deflogin(self,username,password):
self.conn.login(username,password)
self.conn.set_pasv(False)
printself.conn.welcome
deftest(self,ftp_path):
printftp_path
printself._is_ftp_dir(ftp_path)
#printself.conn.nlst(ftp_path)
#self.conn.retrlines('LIST./a/b')
#ftp_parent_path=os.path.dirname(ftp_path)
#ftp_dir_name=os.path.basename(ftp_path)
#printftp_parent_path
#printftp_dir_name
def_is_ftp_file(self,ftp_path):
try:
ifftp_pathinself.conn.nlst(os.path.dirname(ftp_path)):
returnTrue
else:
returnFalse
exceptftplib.error_perm,e:
returnFalse
def_ftp_list(self,line):
list=line.split('')
ifself.ftp_dir_name==list[-1]andlist[0].startswith('d'):
self._is_dir=True
def_is_ftp_dir(self,ftp_path):
ftp_path=ftp_path.rstrip('/')
ftp_parent_path=os.path.dirname(ftp_path)
self.ftp_dir_name=os.path.basename(ftp_path)
self._is_dir=False
ifftp_path=='.'orftp_path=='./'orftp_path=='':
self._is_dir=True
else:
#thisuescallbackfunction,thatwillchange_is_dirvalue
try:
self.conn.retrlines('LIST%s'%ftp_parent_path,self._ftp_list)
exceptftplib.error_perm,e:
returnself._is_dir
returnself._is_dir
defget_file(self,ftp_path,local_path='.'):
ftp_path=ftp_path.rstrip('/')
ifself._is_ftp_file(ftp_path):
file_name=os.path.basename(ftp_path)
#如果本地路径是目录,下载文件到该目录
ifos.path.isdir(local_path):
file_handler=open(os.path.join(local_path,file_name),'wb')
self.conn.retrbinary("RETR%s"%(ftp_path),file_handler.write)
file_handler.close()
#如果本地路径不是目录,但上层目录存在,则按照本地路径的文件名作为下载的文件名称
elifos.path.isdir(os.path.dirname(local_path)):
file_handler=open(local_path,'wb')
self.conn.retrbinary("RETR%s"%(ftp_path),file_handler.write)
file_handler.close()
#如果本地路径不是目录,且上层目录不存在,则退出
else:
print'EROOR:Thedir:%sisnotexist'%os.path.dirname(local_path)
else:
print'EROOR:Theftpfile:%sisnotexist'%ftp_path
defput_file(self,local_path,ftp_path='.'):
ftp_path=ftp_path.rstrip('/')
ifos.path.isfile(local_path):
file_handler=open(local_path,"r")
local_file_name=os.path.basename(local_path)
#如果远程路径是个目录,则上传文件到这个目录,文件名不变
ifself._is_ftp_dir(ftp_path):
self.conn.storbinary('STOR%s'%os.path.join(ftp_path,local_file_name),file_handler)
#如果远程路径的上层是个目录,则上传文件,文件名按照给定命名
elifself._is_ftp_dir(os.path.dirname(ftp_path)):
print'STOR%s'%ftp_path
self.conn.storbinary('STOR%s'%ftp_path,file_handler)
#如果远程路径不是目录,且上一层的目录也不存在,则提示给定远程路径错误
else:
print'EROOR:Theftppath:%siserror'%ftp_path
file_handler.close()
else:
print'ERROR:Thefile:%sisnotexist'%local_path
defget_dir(self,ftp_path,local_path='.',begin=True):
ftp_path=ftp_path.rstrip('/')
#当ftp目录存在时下载
ifself._is_ftp_dir(ftp_path):
#如果下载到本地当前目录下,并创建目录
#下载初始化:如果给定的本地路径不存在需要创建,同时将ftp的目录存放在给定的本地目录下。
#ftp目录下文件存放的路径为local_path=local_path+os.path.basename(ftp_path)
#例如:将ftp文件夹a下载到本地的a/b目录下,则ftp的a目录下的文件将下载到本地的a/b/a目录下
ifbegin:
ifnotos.path.isdir(local_path):
os.makedirs(local_path)
local_path=os.path.join(local_path,os.path.basename(ftp_path))
#如果本地目录不存在,则创建目录
ifnotos.path.isdir(local_path):
os.makedirs(local_path)
#进入ftp目录,开始递归查询
self.conn.cwd(ftp_path)
ftp_files=self.conn.nlst()
forfileinftp_files:
local_file=os.path.join(local_path,file)
#如果fileftp路径是目录则递归上传目录(不需要再进行初始化begin的标志修改为False)
#如果fileftp路径是文件则直接上传文件
ifself._is_ftp_dir(file):
self.get_dir(file,local_file,False)
else:
self.get_file(file,local_file)
#如果当前ftp目录文件已经遍历完毕返回上一层目录
self.conn.cwd("..")
return
else:
print'ERROR:Thedir:%sisnotexist'%ftp_path
return

defput_dir(self,local_path,ftp_path='.',begin=True):
ftp_path=ftp_path.rstrip('/')
#当本地目录存在时上传
ifos.path.isdir(local_path):
#上传初始化:如果给定的ftp路径不存在需要创建,同时将本地的目录存放在给定的ftp目录下。
#本地目录下文件存放的路径为ftp_path=ftp_path+os.path.basename(local_path)
#例如:将本地文件夹a上传到ftp的a/b目录下,则本地a目录下的文件将上传的ftp的a/b/a目录下
ifbegin:
ifnotself._is_ftp_dir(ftp_path):
self.conn.mkd(ftp_path)
ftp_path=os.path.join(ftp_path,os.path.basename(local_path))
#如果ftp路径不是目录,则创建目录
ifnotself._is_ftp_dir(ftp_path):
self.conn.mkd(ftp_path)

#进入本地目录,开始递归查询
os.chdir(local_path)
local_files=os.listdir('.')
forfileinlocal_files:
#如果file本地路径是目录则递归上传目录(不需要再进行初始化begin的标志修改为False)
#如果file本地路径是文件则直接上传文件
ifos.path.isdir(file):
ftp_path=os.path.join(ftp_path,file)
self.put_dir(file,ftp_path,False)
else:
self.put_file(file,ftp_path)
#如果当前本地目录文件已经遍历完毕返回上一层目录
os.chdir("..")
else:
print'ERROR:Thedir:%sisnotexist'%local_path
return
if__name__=='__main__':
ftp=FTPSync('192.168.1.110')
ftp.login('test','test')
#上传文件,不重命名
#ftp.put_file('111.txt','a/b')
#上传文件,重命名
#ftp.put_file('111.txt','a/112.txt')
#下载文件,不重命名
#ftp.get_file('/a/111.txt',r'D:\')
#下载文件,重命名
#ftp.get_file('/a/111.txt',r'D:112.txt')
#下载到已经存在的文件夹
#ftp.get_dir('a/b/c',r'D:\a')
#下载到不存在的文件夹
#ftp.get_dir('a/b/c',r'D:\aa')
#上传到已经存在的文件夹
ftp.put_dir('b','a')
#上传到不存在的文件夹
ftp.put_dir('b','aa/B/')

希望本文所述对大家的Python程序设计有所帮助。

以下转自:http://blog.csdn.net/linda1000/article/details/8255771

Python中的ftplib模块

Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件

FTP的工作流程及基本操作可参考协议RFC959

ftp登陆连接

from ftplib import FTP #加载ftp模块

ftp=FTP() #设置变量
ftp.set_debuglevel(2) #打开调试级别2,显示详细信息
ftp.connect("IP","port") #连接的ftp sever和端口
ftp.login("user","password")#连接的用户名,密码
print ftp.getwelcome() #打印出欢迎信息
ftp.cmd("xxx/xxx") #更改远程目录
bufsize=1024 #设置的缓冲区大小
filename="filename.txt" #需要下载的文件
file_handle=open(filename,"wb").write #以写模式在本地打开文件
ftp.retrbinaly("RETR filename.txt",file_handle,bufsize) #接收服务器上文件并写入本地文件
ftp.set_debuglevel(0) #关闭调试模式
ftp.quit #退出ftp

ftp相关命令操作

ftp.cwd(pathname) #设置FTP当前操作的路径
ftp.dir() #显示目录下文件信息
ftp.nlst() #获取目录下的文件
ftp.mkd(pathname) #新建远程目录
ftp.pwd() #返回当前所在位置
ftp.rmd(dirname) #删除远程目录
ftp.delete(filename) #删除远程文件
ftp.rename(fromname, toname)#将fromname修改名称为toname。
ftp.storbinaly("STOR filename.txt",file_handel,bufsize) #上传目标文件
ftp.retrbinary("RETR filename.txt",file_handel,bufsize)#下载FTP文件

网上找到一个具体的例子:

#例:FTP编程
fromftplibimportFTP

ftp=FTP()
timeout=30
port=21
ftp.connect('192.168.1.188',port,timeout)#连接FTP服务器
ftp.login('UserName','888888')#登录
printftp.getwelcome()#获得欢迎信息
ftp.cwd('file/test')#设置FTP路径
list=ftp.nlst()#获得目录列表
fornameinlist:
print(name)#打印文件名字
path='d:/data/'+name#文件保存路径
f=open(path,'wb')#打开要保存文件
filename='RETR'+name#保存FTP文件
ftp.retrbinary(filename,f.write)#保存FTP上的文件
ftp.delete(name)#删除FTP文件
ftp.storbinary('STOR'+filename,open(path,'rb'))#上传FTP文件
ftp.quit()#退出FTP服务器

完整的模板:

#!/usr/bin/python
#-*-coding:utf-8-*-
importftplib
importos
importsocket

HOST='ftp.mozilla.org'
DIRN='pub/mozilla.org/webtools'
FILE='bugzilla-3.6.7.tar.gz'
defmain():
try:
f=ftplib.FTP(HOST)
except(socket.error,socket.gaierror):
print'ERROR:cannotreach"%s"'%HOST
return
print'***Connectedtohost"%s"'%HOST

try:
f.login()
exceptftplib.error_perm:
print'ERROR:cannotloginanonymously'
f.quit()
return
print'***Loggedinas"anonymously"'
try:
f.cwd(DIRN)
exceptftplib.error_perm:
print'ERRORLcannotCDto"%s"'%DIRN
f.quit()
return
print'***Changedto"%s"folder'%DIRN
try:
#传一个回调函数给retrbinary()它在每接收一个二进制数据时都会被调用
f.retrbinary('RETR%s'%FILE,open(FILE,'wb').write)
exceptftplib.error_perm:
print'ERROR:cannotreadfile"%s"'%FILE
os.unlink(FILE)
else:
print'***Downloaded"%s"toCWD'%FILE
f.quit()
return

if__name__=='__main__':
main()

❽ 有什么比较好的简易的家庭云方案值得推荐

换只能路游戏+移动硬盘肯定是可以。当然我不知道你现在无线ap是个什么配置,使用普通路由器做的AP,还是买的专业AP。

能路由器推荐的很多。所谓只能路由器就是配置更高端的功能,可以添加第三方应用。比较简单的省心的就是小米路由、极路由、360路由、tplink、dlink。比较高端一点的,有华硕、syslink(已从思科剥离)、网件等高端家用路由器,价格基本在500-2000.

高端路由器,可以傻瓜用,也可以烧脑的用,甚至可以刷第三方固件。自己telnet上去直接修改配置文件。

还有专业路由器,直接不推荐了。省心路由。就是把常见的场景都做好了解决方案,直接用就可。

❾ AU3原码怎么实现与FTP服务器同步文件

首先去下载个FTPEx.au3

给段源码你研究吧


#include<FTPEx.au3>
#include<Array.au3>
Local$path
$server='192.168.1.1';服务器
$name='admin';用户名
$pass='admin';密码
$Port='21';端口
$path="c:a1乡村";远程路径,FTP的路径。
$RemoteDir=$path;远程根路径转换,不用管它。
$LocalDir="D:存储软件au3进行中FTP同步实验室1同步路径";本地路径,你想让文件下载到哪里?
$LocalDir=flocalDir($RemoteDir,$LocalDir);转换首目录,不用管
;~MsgBox(0,"$LocalDir",$LocalDir)

ftp($server,$name,$pass,$Port,$path,$RemoteDir)

Funcftp($server,$name,$pass,$Port,$path,$RemoteDir)
;说明:主要函数,搜索,下载
$Open=_FTP_Open('MyFTP');打开一个FTP会话

$Conn=_FTP_Connect($Open,$server,$name,$pass,0,$Port);连接到ftp服务器
_FTP_DirSetCurrent($Conn,$path)
$aFile=_FTP_ListToArrayEx($Conn,0,0);列目录(0=文件和目录,1=目录,2=文件)(格式0=mm/dd/yyyy,1=yyyy/mm/dd)

;~_ArrayDisplay($aFile)
;~MsgBox(0,"显示","共("&$aFile[0][0]&")个")
;~MsgBox(0,"$aFile[$i][0个]文件名",$aFile[0][0])
For$i=1To$aFile[0][0]
If$aFile[$i][2]=16And$aFile[$i][0]<>"."And$aFile[$i][0]<>".."Then
;~$path=$path&$aFile[$i][0]&""
;~MsgBox(0,"$path",$path&$aFile[$i][0]&"",$RemoteDir)
ftp($server,$name,$pass,$Port,$path&$aFile[$i][0]&"",$RemoteDir)
EndIf
If$aFile[$i][0]<>"."And$aFile[$i][0]<>".."And$aFile[$i][2]<>16Then
;检验
;~MsgBox(0,"",$aFile[$i][0])
$fname=$aFile[$i][0];文件名
$sync=ftpsync($LocalDir,$RemoteDir,$path,$fname)
;~MsgBox(0,"是否存在文件返回信息",$sync)
;~If$fname="PiView.mdb"Then
;~MsgBox(0,"$sync",$sync[0]&@LF&$sync[1])
;~EndIf
Select
Case$sync[0]=1;未发现文件
$ftp_download=_FTP_FileGet($Conn,$path&$fname,$sync[1],False);下载文件(True=覆盖False=不覆盖(默认))
;~MsgBox(0,$path&$fname,$sync[1])
Case$sync[0]=2;发现有同名文件
$ftpsize=_FTP_FileGetSize($Conn,$path&$aFile[$i][0])
$localsize=FileGetSize($sync)
;~MsgBox(0,"大小对比",$ftpsize&"-"&$localsize)
If$ftpsize<>$localsizeThen
;~MsgBox(0,"大小对比不成功",$ftpsize&"-"&$localsize)
;~MsgBox(0,"大小对比不成功",$path&$aFile[$i][0]&"-"&$sync)
$ftp_download=_FTP_FileGet($Conn,$path&$fname,$sync[1],False)
;~MsgBox(0,"$ftp_download",$ftp_download)
EndIf
CaseElse
MsgBox(0,"意外错误","搜索失败")

EndSelect
;~MsgBox(0,"次数",$aFile[$i][0])
EndIf

;~MsgBox(0,"显示","名="&$aFile[$i][0]&@CRLF&$aFile[$i][1]&@CRLF&$aFile[$i][2]&@CRLF&$aFile[$i][3]&@CRLF&$aFile[$i][4]&@CRLF&$aFile[$i][5])

Next
;$aFile[$i][0个]文件名
;$aFile[$i][1]文件大小
;$aFile[$i][2]文件属性
;$aFile[$i][3]文件修改日期-时间
;$aFile[$i][4]文件创作日期-时间
;$aFile[$i][5]文件通入日期-时间
$Ftpc=_FTP_Close($Open);关闭_FTP_Open打开的回话
EndFunc;==>ftp

;~FuncDownload
;~用途:下载一个FTP上的文件
;~$ftp_download=_FTP_FileGet($Conn,"111 est222.txt","e:au3_ftp est222.txt",False);下载文件(True=覆盖False=不覆盖(默认))
;~EndFunc;==>ftp

Funcftpsync($LocalDir,$RemoteDir,$path,$fname);本地路径,远程根路径路径,变化中的远程路径,要下载的文件名。
Local$loc12
$loc12=_ArrayCreate("0","0")
;~说明:位置错误返回0,失败返回1,成功返回路径。主要用来判断是否有相同的文件。
IfFileExists($LocalDir)Then;看看本地是否存在,要是不存在就创建一个。
Else
DirCreate($LocalDir)
EndIf
Local$len=StringLen($RemoteDir)
Local$len1=StringLen($path)
$New=StringRight($path,$len1-$len)
;~MsgBox(0,"$New",$New)
;~MsgBox(0,"$fname",$fname)
IfFileExists($LocalDir&$New)Then
Else
;创建目录
DirCreate($LocalDir&$New)
EndIf
;~MsgBox(0,"需要判断是否存在的文件",$LocalDir&$New&$fname)
IfFileExists($LocalDir&$New&$fname)Then
;判断文件大小
$loc12[0]=2
$loc12[1]=$LocalDir&$New&$fname
;~Return$LocalDir&$New&$fname
;~MsgBox(0,"文件是否存在判定-是存在",$LocalDir&$New&$fname)

Else
;创建目录下载文件

;~Return1
$loc12[0]=1
$loc12[1]=$LocalDir&$New&$fname
EndIf
Return$loc12
EndFunc;==>ftpsync

FuncflocalDir($RemoteDir,$LocalDir)
;~说明:创建首目录
$LOG=StringSplit($RemoteDir,"")
If$LOG[0]<=1Then;如果呢~只有根目录盘那就是C盘根目录
Local$result=StringLeft($RemoteDir,1)
$LocalDir=$LocalDir&$result&"盘根目录"
Return$LocalDir
Else;如果不是那远程目录的最后一个文件夹,便是根目录的最后一个文件夹了。
$Loc1=$LOG[$LOG[0]-1]
$LocalDir=$LocalDir&$Loc1&""
Return$LocalDir

EndIf
EndFunc;==>flocalDir

❿ win2003系统下 FreeFileSync v8.1 如何通过sftp将需要备份的文件上传到ftp服务器进行备份。

默认的sublime text是没有这个sftp连接功能的,这只是一个文本编辑器,相当于windows下的txt,所以要先装上插件:
安装Sublime Text 2插件的方法:
1.直接安装
安装Sublime text 2插件很方便http://www.uuudown.com/,可以直接下载安装包解压缩到Packages目录
(菜单->preferences->packages)。
2.使用Package Control组件安装,下载这个方法要先安装Package Control,我就是用这个方法安装的。
先安装package control组件,然后直接在线安装。
1) 按Ctrl+`调出console, 粘贴以下代码到底部命令行并回车:
import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
2)重启Sublime Text 2。
如果在Perferences->package settings中看到package control这一项,则安装成功。
3)用Package Control安装插件的方法:

按下Ctrl+Shift+P调出命令面板
输入install选择下面提示的 Install Package选项并回车,然后输入SFTP,下拉列表中会出现一些相关的插件,选中sftp进行安装就行了,装好后还需配置如下:选菜单栏中的File->SFTP/FTP->Set up Server,然后出现一个配置窗口如下,
连接成功的话会有在sublime的底部如下显示,这样链接成功了。。。

按下Ctrl+Shift+P调出命令面板
选中sftp进行安装就行了,装好后还需配置如下:
选菜单栏中的File->SFTP/FTP->Set up Server,然后出现一个配置窗口如下,

注意是ftp连接的话,要将sftp改成ftp,然后设置主机名,密码,端口就行了,ftp的端口是21。
连接成功的话会有在sublime的底部如下显示,这样链接成功了。。。

下面介绍将一个项目上传:

在工具栏中点击Project - Add Folder to Project...,选择项目的文件夹。这样左侧会出现project文件夹,右键project,选择FTPSync - Setup FTPSync in this folder,之后会出来一个配置文件sftp-config.json,对配置文件进行修改,代码如下:

[php] view plain
{
// The tab key will cycle through the settings when first created
// Visit http://wbond.net/sublime_packages/sftp/settings for help

// sftp, ftp or ftps
"type": "ftp",

"save_before_upload": true,
"upload_on_save": false,
"sync_down_on_open": false,
"sync_skip_deletes": false,
"confirm_downloads": false,
"confirm_sync": true,
"confirm_overwrite_newer": false,

"host": "wangshangyou.com",
"user": "",
"password": "",
//"port": "22",

"remote_path": "/",
"ignore_regexes": [
"\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json",
"sftp-settings\\.json", "/venv/", "\\.svn", "\\.hg", "\\.git",
"\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini"
],
//"file_permissions": "664",
//"dir_permissions": "775",

//"extra_list_connections": 0,

"connect_timeout": 30,
//"keepalive": 120,
//"ftp_passive_mode": true,
//"ssh_key_file": "~/.ssh/id_rsa",
//"sftp_flags": ["-F", "/path/to/ssh_config"],

//"preserve_modification_times": false,
//"remote_time_offset_in_hours": 0,
//"remote_encoding": "utf-8",
//"remote_locale": "C",
}

在project目录结构中选择文件右键上传,或者在命令输入框中输入命令。

这样就完成了。

主要快捷键列表:
Ctrl+L 选择整行(按住-继续选择下行)
Ctrl+KK 从光标处删除至行尾
Ctrl+Shift+K 删除整行
Ctrl+Shift+D 复制光标所在整行,插入在该行之前
Ctrl+J 合并行(已选择需要合并的多行时)
Ctrl+KU 改为大写
Ctrl+KL 改为小写
Ctrl+D 选词 (按住-继续选择下个相同的字符串)
Ctrl+M 光标移动至括号内开始或结束的位置
Ctrl+Shift+M 选择括号内的内容(按住-继续选择父括号)
Ctrl+/ 注释整行(如已选择内容,同“Ctrl+Shift+/”效果)
Ctrl+Shift+/ 注释已选择内容
Ctrl+Z 撤销
Ctrl+Y 恢复撤销
Ctrl+M 光标跳至对应的括号
Alt+. 闭合当前标签
Ctrl+Shift+A 选择光标位置父标签对儿
Ctrl+Shift+[ 折叠代码
Ctrl+Shift+] 展开代码
Ctrl+KT 折叠属性
Ctrl+K0 展开所有
Ctrl+U 软撤销
Ctrl+T 词互换
Tab 缩进 自动完成
Shift+Tab 去除缩进
Ctrl+Shift+↑ 与上行互换
Ctrl+Shift+↓ 与下行互换
Ctrl+K Backspace 从光标处删除至行首
Ctrl+Enter 光标后插入行
Ctrl+Shift+Enter 光标前插入行
Ctrl+F2 设置书签
F2 下一个书签
Shift+F2 上一个书签

热点内容
上传速度对网速的影响吗 发布:2024-10-09 20:09:38 浏览:560
密码锁芯在哪里能买到 发布:2024-10-09 20:05:33 浏览:451
传奇服务器强行下线是什么意思 发布:2024-10-09 20:05:11 浏览:919
sqljoinas 发布:2024-10-09 19:48:01 浏览:390
文本编辑器没有编译器可以吗 发布:2024-10-09 19:39:36 浏览:995
linux环境变量oracle 发布:2024-10-09 19:24:36 浏览:317
pythonimport找不到模块 发布:2024-10-09 19:23:45 浏览:508
安卓怎么卸载插件 发布:2024-10-09 19:07:13 浏览:930
see脚本 发布:2024-10-09 19:07:12 浏览:423
sqlleftouter 发布:2024-10-09 18:46:46 浏览:760