Python字符计数中的额外字符(Fedora、Gedit)

Python字符计数中的额外字符(Fedora、Gedit),python,fedora,gedit,Python,Fedora,Gedit,我正在运行Fedora、Python 2.7和Gedit,在一个简单的字符计数函数中出现了一个奇怪的错误: def charCount(text): text.seek(0) # read the whole file as one string full_string = text.read() char_count = len(full_string) # return the count

我正在运行Fedora、Python 2.7和Gedit,在一个简单的字符计数函数中出现了一个奇怪的错误:

    def charCount(text):
        text.seek(0)
        # read the whole file as one string
        full_string = text.read()
        char_count = len(full_string)
        # return the count
        return char_count
在我的Mac电脑上运行这项功能得到了正确的计数,但在我的Fedora comp上,我继续得到1个额外的计数。My main()只是读入用户指定的文件并对其调用此函数。你知道这个额外的角色是从哪里来的吗?谢谢


(这是我在这里的第一个问题。如果我做错了什么,很抱歉!)

这里只是一个快速猜测。这可能与行终止有关。某些系统仅使用'\r\n',其他一些'\n'。我认为osx只使用'\r'


根据平台的不同,len将对其中一个进行计数或不进行计数,并返回稍有不同的计数

如果文件末尾有一个您不希望看到的新行


使用linux命令
truncate-s$($(wc-m myfile | cut-d''-f1)-1)myfile

可以通过运行
wc input_file.txt
检查输入文件的长度吗?你的代码在Linux上对我有用。嗨,托尼。对于一个只有字母“a”(没有空格或新行)的文件,wc返回“12”。当使用“-m”运行时,它返回“2”。即使您不要求编辑也会添加新行。如果您使用的是
od-tx1z input_file.txt
最后一个十六进制字符是什么?如果它是
0a
,就会有一个新行。是的!就这样。非常感谢。这真的很困扰我。很高兴能为大家服务。嗨,埃里克。我试着在一个测试文件上运行它,只使用字母“a”,没有换行符、制表符或空格。由于某种原因,它仍然返回2。很可能是您的文件有某种终止。尝试在每个字符上循环,将它们转换为字符串表示形式,然后打印它们