Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.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 ASCII文本可执行文件,带有CRLF行终止符_Python_Python 3.x - Fatal编程技术网

Python ASCII文本可执行文件,带有CRLF行终止符

Python ASCII文本可执行文件,带有CRLF行终止符,python,python-3.x,Python,Python 3.x,晚上好, 我目前正在参加python入门课程,遇到了一个我一直无法解决的问题。我敢肯定这是我代码中的一个简单错误,但我还没有找到任何问题,因此解决了我的问题 奇怪的是,当从cygwin执行它时,它编译并运行良好 我在通过第三方测试(我无权访问)进行验证时遇到此错误: Python脚本,ASCII文本可执行文件,带有CRLF行终止符 这是我的代码: height = float(input("What is the plane's elevation in metres? \r\n"))

晚上好,

我目前正在参加python入门课程,遇到了一个我一直无法解决的问题。我敢肯定这是我代码中的一个简单错误,但我还没有找到任何问题,因此解决了我的问题

奇怪的是,当从cygwin执行它时,它编译并运行良好

我在通过第三方测试(我无权访问)进行验证时遇到此错误:

Python脚本,ASCII文本可执行文件,带有CRLF行终止符

这是我的代码:

    height = float(input("What is the plane's elevation in metres? \r\n"))
    height = format(height * 3.28084, '.2f')

    speed = float(input("What is the plane's speed in km/h? \r\n"))
    speed = format(speed * 0.62137, '.2f')

    temperature = float(input("Finally, what is the temperature (in celsius) outside? \r\n"))
    temperature = format(temperature * (9/5) + 32, '.2f') 

    print("""\n########### OUTPUT ###########\n\nThe elevation is {feet} above the sea level, \n
you are going {miles} miles/h, \n
finally the temperature outside is {temp} degrees fahrenheit \n
########### OUTPUT ###########""".format(feet=height, miles=speed, temp=temperature)) 
这是基于它的cgi(两者都抛出相同的错误):

#/usr/bin/env蟒蛇3
#-*-编码:utf-8-*-
#将页面内容以字节而不是字符串的形式写入sys.stdout
导入系统
导入编解码器
#启用cgi-.scripts的调试
进口cgitb
cgib.enable()
#发送HTTP头
#打印(“内容类型:文本/纯文本;字符集=utf-8”)
打印(“内容类型:文本/html;字符集=utf-8”)
打印(“”)
高度=格式(1100*3.28084,.2f')
速度=格式(1000*0.62137,.2f')
温度=格式(-50*(9/5)+32'.2f')
toPrint=“”\n、输出、海拔高度在海平面以上{英尺,\n
您将以每小时{miles}英里的速度运行,\n
最后,室外温度为{temp}华氏度\n
###########输出
格式(英尺=高度,英里=速度,温度=温度)
#下面是网页的内容
content=”“”
Min Redovisings sida
Min Redovisings sida
{打印机}
"""
#写页面内容
sys.stdout=codecs.getwriter(“utf-8”)(sys.stdout.detach())
sys.stdout.write(content.format(printer=toPrint))

您需要将CRLF转换为LF,为此,您可以运行以下命令:

find . -type f -exec dos2unix {} \;
如果需要将其应用于特定文件夹内容,请在文件夹内使用以下命令:

sudo apt-get install dos2unix
您需要先安装dos2unix软件包:


本希望使用类似的方法可以解决这个问题:crlf行终止符不是字符串中的
\r\n
。它们实际上是包含文本文件的行的终止符。e、 你在Windows系统上写了这段代码。我想。。。那就是臭名昭著的缩进?这个输出是linux/unix
file
命令的输出,该命令分析文件以确定它是什么。某个地方——大概是您提到的测试床——正在运行
file
命令并返回其输出。你相信第三方测试吗?(即,你知道它们工作正常吗?)那么,如果我使用virtualbox手动编写它,或者将它复制粘贴到文本编辑器中,然后让它进行测试,这样的问题会得到解决吗?或者有没有更简单的方法?这可能是一个有趣的测试。如果您运行dos2unix并提交代码,很可能会出现一个“错误”,上面写着
Python脚本,ASCII文本可执行文件
。这样做将确认它与
\r\n
无关,而是测试人员或您如何使用它的问题。这通常是我遇到这个问题时(当我将文件从Windows复制到Ubuntu时)所做的,所以我运行这些命令,然后使用Git将代码推送到远程服务器。
find . -type f -exec dos2unix {} \;
sudo apt-get install dos2unix