Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python文件的扩展名为';。py?';而不是';。py';_Python_Macos_Curl_Terminal_Mv - Fatal编程技术网

Python文件的扩展名为';。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

我正在尝试制作一个脚本来下载一个文件(本例中是python文件)。然后将该文件重命名为所述文件第一行中包含的任何内容。这些文件在gui文件系统中似乎命名正确,但终端显示它们实际上是用.py命名的?扩展名而不是.py。问题是当输入“python file.py”时,.py?文件不会执行。下面是伪代码中的大致情况:

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样式转义符。