Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.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 Linux将相同的.py文件标识为不同的_Python_Linux_Windows - Fatal编程技术网

Python Linux将相同的.py文件标识为不同的

Python Linux将相同的.py文件标识为不同的,python,linux,windows,Python,Linux,Windows,我正在用Python开发CGI脚本。我在我的服务器上运行了一个基本的“Hello World”脚本,它运行得很好,但我在Windows笔记本电脑上尝试编写的所有内容(在Sublime text 2中)和复制都会抛出Apache 500错误,没有任何调试信息。最后,我将HelloWorld脚本的文本复制到windows上,粘贴到一个.py文件中,然后再复制回来,结果发现它仍然不起作用。我认为这可能是权限错误,但这两个文件具有完全相同的权限。在nano中,它们看起来完全一样,但一个工作,一个不工作。

我正在用Python开发CGI脚本。我在我的服务器上运行了一个基本的“Hello World”脚本,它运行得很好,但我在Windows笔记本电脑上尝试编写的所有内容(在Sublime text 2中)和复制都会抛出Apache 500错误,没有任何调试信息。最后,我将HelloWorld脚本的文本复制到windows上,粘贴到一个.py文件中,然后再复制回来,结果发现它仍然不起作用。我认为这可能是权限错误,但这两个文件具有完全相同的权限。在nano中,它们看起来完全一样,但一个工作,一个不工作。通过使用
sdiff
,我发现它们有些不同,也就是说它们是完全不同的文件,尽管所有的文本都是相同的。我尝试了一个十六进制转储,发现虽然文本是相同的,但1和0是不同的。有人知道我是否可以在python中设置某种编码来防止Apache抛出错误吗

我的终端屏幕截图显示文件并排和十六进制转储。py是正常工作的linux CGI脚本。Orig.py是我从windows复制的脚本。copied.py是test.py的副本,我制作它是为了演示当两个文件相同时,
sdiff
的输出应该是什么

更新:检查编码,两个文件都输出


text/x-java;charset=us ascii

正如巴库留所提到的,这是一种行尾差异

在十六进制输出中注意:

“test.py”文件以
…0a
结尾,“orig.py”文件以
…0d0a
结尾

0a
对应于换行符
\n
,而
0d
对应于换行符“\r”

如果在Vim中打开“orig.py”,则应在行尾看到
^M
。 欢迎使用跨平台开发乐趣和游戏(:


您可以使用类似于
dos2unix
的程序来解决此问题。

行结束?Windows使用
\n\r
,而linux使用
\n
,尽管我在这方面从未遇到过问题。顺便说一句:图像非常无用。您不能从终端复制粘贴文本吗?