Python文件的扩展名为';。py?';而不是';。py';
我正在尝试制作一个脚本来下载一个文件(本例中是python文件)。然后将该文件重命名为所述文件第一行中包含的任何内容。这些文件在gui文件系统中似乎命名正确,但终端显示它们实际上是用.py命名的?扩展名而不是.py。问题是当输入“python file.py”时,.py?文件不会执行。下面是伪代码中的大致情况:Python文件的扩展名为';。py?';而不是';。py';,python,macos,curl,terminal,mv,Python,Macos,Curl,Terminal,Mv,我正在尝试制作一个脚本来下载一个文件(本例中是python文件)。然后将该文件重命名为所述文件第一行中包含的任何内容。这些文件在gui文件系统中似乎命名正确,但终端显示它们实际上是用.py命名的?扩展名而不是.py。问题是当输入“python file.py”时,.py?文件不会执行。下面是伪代码中的大致情况: curl fileurl.com -o temp #Downloads file to working directory with name 'temp' fi
curl fileurl.com -o temp #Downloads file to working directory with name 'temp'
file_name = getFirstLineOf(temp) #Returns the first line of the file to variable 'file_name'
runInTerminal('mv temp '+file_name) #renames file 'temp' as 'file_name'
越来越具体
file_name = 'aFile.py' #assume name came from first line of said file
runInTerminal('mv temp '+file_name)
…导致文件名为'aFile.py',而不是'aFile.py'文件名中可能没有问号,可能表示文件名中有不可打印的字符。请尝试打印出
文件名的实际字节。
(如果第一个示例是Python,print(repr(文件名))
然后您将看到是否有任何不可打印的字符。此外,您实际上可以从shell中运行名为aFile.py?
的文件,如果它是实际名称的话。您只需对其进行转义或引用,这样shell就不会试图对其进行解释:python'aFile.py?
还可以在命令行上尝试ls-b
来打印该文件文件名,不可打印字符替换为C样式转义符。