[英]How to create a file using parameters in Python?
我當前正在創建文件傳輸客戶端服務器。 我需要做的是使客戶端使用參數創建文件(如果我沒記錯的話,這和參數是一樣的事情)。 所以,我想要的是跑步
python server.py
接着
python client.py file.txt
這是服務器代碼:
# -*- coding: utf-8 -*-
import socket
from threading import Thread
class threaded_server(Thread):
def __init__(self,ip,port,sock):
Thread.__init__(self)
self.ip = ip
self.port = port
self.sock = sock
print " Nova conexão de "+ip+":"+str(port)
# rodando a thread, leitura da mensagem
def run(self):
arquivo = open('entrada.txt','rb')
while True:
temp = arquivo.read(msg)
while (temp):
self.sock.send(temp)
temp = arquivo.read(msg)
if not temp:
self.sock.close()
break
host = socket.gethostname()
port = 5001
msg = 1024
# não funcionou na declaração _def_init
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((host, porta))
threads = []
# servidor fica aguardando novas conexoes
while True:
sock.listen(4)
print "Aguardando..."
(conn, (ip,port)) = sock.accept()
print 'Conexão de: ', (ip,port)
newthread = threaded_server(ip,port,conn)
newthread.start()
threads.append(newthread)
for t in threads:
t.join()
這是客戶端代碼:
# -*- coding: utf-8 -*-
import socket
host = socket.gethostname ()
port = 5001
msg = 2048
tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
destino = (host, porta)
tcp.connect(destino)
with open('saida.txt', 'wb') as arquivo:
print 'Arquivo aberto'
while True:
dados = tcp.recv(msg)
if not dados:
arquivo.close()
break
arquivo.write(dados)
tcp.close()
print('Fim da Conexão')
我正在尋找的是讓客戶端創建將發送到服務器的文件。
對不起,葡萄牙語中的代碼。 如果有人需要更多說明,請問。
您可以使用sys.argv
訪問命令行參數,這是傳遞給腳本的參數列表。 這是一個例子:
import sys
print(sys.argv)
將其保存到test.py
然后使用以下命令行執行該程序:
# python test.py file.txt
['test.py', 'file.txt']
第一個腳本參數是python腳本本身的名稱。 第二個是第一個參數。 您可以在client.py
腳本中使用它來設置輸出文件名:
import sys
if len(sys.argv) < 2:
print('Usage: {} output_filename'.format(sys.argv[0]), file=sys.stderr)
sys.exit(1)
output_filename = sys.argv[1]
with open(output_filename, 'wb') as arquivo:
...
sys.argv
的長度用於確保至少存在兩個參數。 第一個是腳本名稱,第二個是輸出文件名。 任何其他參數都將被忽略。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.