Skip to main content
 首页 » 编程设计

python之argv 列出目录文件

2025年05月04日12exmyth

这个非常简单的代码让我抓狂。

import sys,string,socket   
 
maquina = sys.argv[1] 
texto = string.join(sys.argv[2:], " ") 
print '['+maquina+']'  
print '['+texto+']' 
 
mysock = socket.socket( socket.AF_INET, socket.SOCK_DGRAM ) 
if  maquina == '*': 
    for ip in range(18,254): 
        mysock.sendto( texto, ('192.168.0.'+str(ip),8090) ) 
else: 
    mysock.sendto( texto, (maquina,8090)) 
mysock.close() 

当我输入时

python send.py 192.168.0.135 several strings  

输出是:

[192.168.0.135] 
[several strings] 

但是如果我输入

python send.py * several strings 

我得到了:

[ajax] 
[ajustaprofile.py build dia2django.py djangoajax django-cube django-evolution django_excel_templates-0.1 Doc google_appengine httpd.conf imagens jre1.5.0_08 lib list_mailbackup.py luma models.py netsend.py pip-log.txt reverse.py share testparamet.py tnsnames.ora util virttool-0.1 xlrd-0.7.1 xlutils-1.4.1 xlwt-0.7.2 several lines] 

这是我在当前目录下的文件列表! Python 以某种方式将“*”转换为当前目录的文件。

我尝试使用此链接做功课,但没有任何线索。

http://docs.python.org/library/sys.html http://www.faqs.org/docs/diveintopython/kgp_commandline.html

如何在 argv 上使用“*”?

请您参考如下方法:

尝试使用 '*' 而不是 *。您的 shell 通过 cmdline args 将 * 的结果提供给程序,就像 ls * 一样。