Skip to main content
 首页 » 编程设计

python之为不带引号的函数获取字符串参数

2025年05月04日23webabcd

我有一个函数,用于从 URL 下载文件并将其写入磁盘,同时强加特定的文件扩展名。目前,它看起来像这样:

import requests 
import os 
 
def getpml(url,filename): 
    psc = requests.get(url) 
    outfile = os.path.join(os.getcwd(),filename+'.pml') 
    f = open(outfile,'w') 
    f.write(psc.content) 
    f.close() 
    try: 
        with open(outfile) as f: 
            print "File Successfully Written" 
    except IOError as e: 
        print "I/O Error, File Not Written" 
    return 

当我尝试类似的东西时

getpml('http://www.mysite.com/data.txt','download') 我在当前工作目录中获取了相应的文件 download.pml。但是当我为函数提供相同的参数但不带 ' 符号时,Python 会说一些类似于“NameError: name 'download' is not defined”的内容(URL 产生语法错误)。如果在函数本身内使用 str(filename) 或类似的东西,甚至会发生这种情况。

我不想用引号字符输入函数的参数 - 它只会使输入 URL 等稍微困难一些。有任何想法吗?我想有一种简单的方法可以做到这一点,但我的 Python 技能参差不齐。

请您参考如下方法:

不,那是不可能的。当您输入 Python 源代码时,您必须在字符串周围输入引号。否则 Python 无法判断字符串的开始和结束位置。

看来你也有更普遍的误解。调用不带引号的 getpml(http://www.mysite.com) 并不是用“不带引号的相同参数”调用它。那里根本没有任何争论。它不像有“带引号的参数”和“不带引号的参数”。 Python 不像说一种自然的人类语言,您可以发出任何声音,听众可以理解您的意思。 Python 代码只能由某些构建 block (对象名称、字符串、运算符等)组成,而 URL 不是其中之一。