當前位置:首頁 » 文件管理 » python上傳文件到伺服器

python上傳文件到伺服器

發布時間: 2023-01-20 08:48:50

『壹』 python程序怎麼部署到雲伺服器

你需要登錄雲伺服器管理控制台,記錄被我打馬賽克位置的公網ip。

登錄伺服器
windows推薦下putty進行連接遠程伺服器,linux和macos不需要那麼麻煩,ssl就行了。

putty
在下圖的host name中輸入你的公網IP,點擊open。

putty界面
輸入密碼,看不見輸入不要慌,linux就是這樣保護安全的。

Paste_Image.png
登錄成功界面見下圖,然後想怎麼操作就怎麼操作了。

登陸成功界面
運行我的python文件
推薦FileZilla進行文件傳輸(不具體說明了),我上傳了我的flask網站項目

我的項目
記住伺服器同時有Python2和Python3,

python
運行的時候記得使用合適的版本,我用的是虛擬環境(自行網路如何創建虛擬環境)
在運行python之前先安裝一個screen,他可以將一個程序在後台運行
sudo apt-get install screen

運行python文件,成功後按下ctrl+A和ctrl+D可以隱藏。隱藏後可以輸入screen -r 恢復。

運行成功

『貳』 python的paramiko模塊 支持連接交換機嗎

paramiko使用

paramiko模塊是基於python實現了SSH2遠程安全連接,支持認證和密鑰方式,可以實現遠程連接、命令執行、文件傳輸、中間SSH代理功能

安裝

pip install paramiko
或 easy_install paramiko
paramiko依賴第三方的Crypto,Ecdsa和pyhton-devel,所以需要安裝

paramiko核心組件

SSHClient類

SSHClient類是SSH服務會話的高級表示,該類實現了傳輸、通道、以及Sftp的校驗、建立的方法

  • connect 方法

    connect方法實現了遠程ssh連接並作校驗

  • hostname 連接的目標主機

  • port=SSH_PORT 指定埠

  • username=None 驗證的用戶名

  • password=None 驗證的用戶密碼

  • pkey=None 私鑰方式用於身份驗證

  • key_filename=None 一個文件名或文件列表,指定私鑰文件

  • timeout=None 可選的tcp連接超時時間

  • allow_agent=True, 是否允許連接到ssh代理,默認為True 允許

  • look_for_keys=True 是否在~/.ssh中搜索私鑰文件,默認為True 允許

  • compress=False, 是否打開壓縮

  • sock=None,

  • gss_auth=False,

  • gss_kex=False,

  • gss_deleg_creds=True,

  • gss_host=None,

  • banner_timeout=None

  • 參數

  • exec_command方法

    遠程執行命令的方法,該命令的輸入與輸出流為標准輸入、標出輸出、標准錯誤輸出

  • command 執行的命令

  • bufsize=-1 文件緩沖區大小

  • timeout=None

  • get_pty=False

  • 參數

  • load_system_host_key方法

    夾在本地公鑰文件,默認為~/.ssh/known_hosts

  • filename=None 指定本地公鑰文件

  • 參數

  • set_missing_host_key_policy方法
    設置連接的遠程主機沒有本地主機密鑰或HostKeys對象時的策略,目前支持三種:

    用法:
    set_missing_host_key_policy(paramiko.AutoAddPolicy())

  • AutoAddPolicy 自動添加主機名及主機密鑰到本地HostKeys對象,不依賴load_system_host_key的配置。即新建立ssh連接時不需要再輸入yes或no進行確認

  • WarningPolicy 用於記錄一個未知的主機密鑰的python警告。並接受,功能上和AutoAddPolicy類似,但是會提示是新連接

  • RejectPolicy 自動拒絕未知的主機名和密鑰,依賴load_system_host_key的配置。此為默認選項

  • SFTPClient類

    SFTPCLient作為一個sftp的客戶端對象,根據ssh傳輸協議的sftp會話,實現遠程文件操作,如上傳、下載、許可權、狀態

  • from_transport(cls,t) 創建一個已連通的SFTP客戶端通道

  • put(localpath, remotepath, callback=None, confirm=True) 將本地文件上傳到伺服器 參數confirm:是否調用stat()方法檢查文件狀態,返回ls -l的結果

  • get(remotepath, localpath, callback=None) 從伺服器下載文件到本地

  • mkdir() 在伺服器上創建目錄

  • remove() 在伺服器上刪除目錄

  • rename() 在伺服器上重命名目錄

  • stat() 查看伺服器文件狀態

  • listdir() 列出伺服器目錄下的文件

  • 遠程連接並執行命令

    實現遠程連接主機,並執行命令,同時記錄日誌
    * 直接驗證方式


『叄』 python 怎麼實現兩台伺服器上批量復制文件

1、把excel里文件名那一列復制,粘進一個空白的文本文件,命名為filelist.txt,上傳到伺服器。

2、在伺服器上使用腳本導出,python腳本 fileCp.py 。

代碼示例:
#! python
#coding:utf-8

##!/usr/bin/python
# Filename : fileCp.py
import sys
import os
import shutil

fileList='filelist.txt'
targetDir='files'

filedir = open(fileList)
line = filedir.readline()
log = open('running.log','w')
while line:
line = line.strip('\n');
basename = os.path.basename(line)
exists = os.path.exists(line)
if exists :
print ' '+line+' to '+os.getcwd()+'/'+targetDir+'/'+basename
log.write(' '+line+' to '+os.getcwd()+'/'+targetDir+'/'+basename+'\r\n')
shutil.(line,targetDir+'/'+basename)
else:
print line+' not exists'
log.write(line+' not exists'+'\r\n')
line = filedir.readline()
log.close()

『肆』 怎麼用http上傳一個文件到伺服器 python

首先,標准HTTP協議對上傳文件等表單的定義在這里:wwwietforg/rfc/rfc1867txt 大概數據包格式如下:

單文件:

Content-type: multipart/form-data, boundary=AaB03x

--AaB03x
content-disposition: form-data; name="field1"

Joe Blow
--AaB03x
content-disposition: form-data; name="pics"; filename="file1.txt"
Content-Type: text/plain

... contents of file1.txt ...
--AaB03x--
多文件:

Content-type: multipart/form-data, boundary=AaB03x

--AaB03x
content-disposition: form-data; name="field1"

Joe Blow
--AaB03x
content-disposition: form-data; name="pics"
Content-type: multipart/mixed, boundary=BbC04y

--BbC04y
Content-disposition: attachment; filename="file1.txt"
其次,python上傳文件的幾種方法:

1 自己封裝HTTP的POST數據包:http//stackoverflowcom/questions/680305/using-multipartposthandler-to-post-form-data-with-python

import httplibimport mimetypesdef post_multipart(host, selector, fields, files): content_type, body = encode_multipart_formdata(fields, files) h = httplib.HTTP(host) h.putrequest('POST', selector) h.putheader('content-type', content_type) h.putheader('content-length', str(len(body))) h.endheaders() h.send(body) errcode, errmsg, headers = h.getreply() return h.file.read() def encode_multipart_formdata(fields, files): LIMIT = '----------lImIt_of_THE_fIle_eW_$' CRLF = '\r\n' L = [] for (key, value) in fields: L.append('--' + LIMIT) L.append('Content-Disposition: form-data; name="%s"' % key) L.append('') L.append(value) for (key, filename, value) in files:

『伍』 上傳到雲伺服器的文件怎麼讀取(Python)

ssh 連接到伺服器,cd到文件所在路徑,cat該文件

『陸』 python3前端傳遞的pdf文件對象如何存儲到伺服器的指定目錄

1.前端頁面
<form action="/upload" method="post" enctype="multipart/form-data">
文件:<input type="file" name="testUpload"/>
<input type="submit" />
</form>
2.java代碼
@RequestMapping(value = "upload")
@ResponseBody
public String upload(@RequestParam("testUpload") MultipartFile file) {
if (file.isEmpty()) {
return "文件為空";
}
// 獲取文件名
String fileName = file.getOriginalFilename();
System.out.println("上傳的文件名為:" + fileName);
// 獲取文件的後綴名
String suffixName = fileName.substring(fileName.lastIndexOf("."));
System.out.println("上傳的後綴名為:" + suffixName);
// 文件上傳後的路徑
String filePath = "E://test//";
File dest = new File(filePath + fileName);
// 檢測是否存在目錄
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
try {
file.transferTo(dest);
return "上傳成功";
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "上傳失敗";
}

『柒』 樹莓派 python 如何將本地文件上傳到指定的伺服器頁面上

以下是單個文件的,不確定你的文件夾是什麼意思,可以壓縮下再上傳(方法一樣,調用zip命令)

我的實現方法:調用終端的curl,以下為代碼平片段,實現的功能是上傳log文件到伺服器,供參考:

defpost_log(self,post_url,del_source_file=True):
'''
postlogtologserver
'''
ifself.log_path:
command="curl-s-Flog=@{0}{1}".format(self.log_path,post_url)
return_str=os.popen(command).read()
logging.debug(return_str)
#printreturn_str
ifreturn_str=="success":
ifdel_source_file:
del_command="sudorm{0}".format(self.log_path)
os.system(del_command)
returnTrue
else:
returnFalse
returnFalse

『捌』 如何在 Python 中模擬 post 表單來上傳文件

在機器上安裝了Python的setuptools工具,可以通過下面的命令來安裝 poster:
easy_install poster
裝完之後,安裝下面代碼就可以實現post表單上傳文件了:

from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2

# 在 urllib2 上注冊 http 流處理句柄
register_openers()

# 開始對文件 "DSC0001.jpg" 的 multiart/form-data 編碼
# "image1" 是參數的名字,一般通過 HTML 中的 <input> 標簽的 name 參數設置

# headers 包含必須的 Content-Type 和 Content-Length
# datagen 是一個生成器對象,返回編碼過後的參數
datagen, headers = multipart_encode({"image1": open("DSC0001.jpg", "rb")})

# 創建請求對象(localhost伺服器IP地址,5000伺服器埠)
request = urllib2.Request("http://localhost:5000/upload_image", datagen, headers)
# 實際執行請求並取得返回
print urllib2.urlopen(request).read()

熱點內容
如何在conda中安裝需要編譯的軟體 發布:2024-05-03 02:41:21 瀏覽:780
易語言垃圾清理源碼 發布:2024-05-03 02:40:34 瀏覽:182
滴滴蘋果安卓哪個派單量好 發布:2024-05-03 02:22:52 瀏覽:289
lua編程pdf 發布:2024-05-03 01:39:26 瀏覽:24
臍帶血存儲的三大忌 發布:2024-05-03 01:32:38 瀏覽:934
寶馬可編程 發布:2024-05-03 01:32:20 瀏覽:226
匿名ftp的作用 發布:2024-05-03 01:30:13 瀏覽:420
php支付程序 發布:2024-05-03 01:07:09 瀏覽:287
安卓插口是什麼型號圖片 發布:2024-05-03 01:01:57 瀏覽:253
移動android開發 發布:2024-05-03 00:26:42 瀏覽:628