Chinaunix

标题: 如何去掉回车符 [打印本页]

作者: wubulen    时间: 2006-08-28 17:18
标题: 如何去掉回车符
我将一些文件的路径及文件名放在一个文本文件里,运行脚本时从此文本文件里一条一条读出里面的文件并执行打开,但是文本文件里每一行,即每一文件名后面自动加上了回车符,如何可以在读出文件名时去掉此回车符呢?因为加了此回车符,打开文件时有错误。谢谢。
作者: OneZ    时间: 2006-08-28 18:30
仅供参考
  1.     fileListFile = open( fileListName )
  2.     fileNames = fileListFile.readlines()
  3.     fileListFile.close()

  4.     for fileName in fileNames:
  5.         if fileName[-1] == '\n':
  6.             fileName = fileName[0:-1]
  7.         ......
复制代码

作者: wubulen    时间: 2006-08-28 19:00
可以运行,谢谢楼上的。
作者: limodou    时间: 2006-08-28 20:44
不同的平台,换行符是不同的,上面的代码并不准确。不如使用rstrip()去掉行尾空白。不过这样也会把行尾的其它空白也一起去掉。
作者: wubulen    时间: 2006-08-28 21:30
在windows下可以用。
作者: guotie    时间: 2006-08-29 14:55
strip()
作者: OneZ    时间: 2006-08-29 21:02
不同平台下的換行符當然是不一樣的。然而,不同平台下的Python,其對換行符的處理也是不一樣的,中間還有一層和平台相關的轉義。這一點,可以在Windows平台下得到證明。因此,如果你的程序和文件是同一平台下的話,上面這段程序是沒有問題的。

如果要應付夸平台的要求,對于Windows和UNIX文件,可以這樣:
  1.         fileName = fileName.replace('\r','')
  2.         fileName = fileName.replace('\n','')
复制代码
直接將回車、換行兩字符替換掉就行了。

對于Mac格式,它是以\r為換行符,無論在Windows還是在UNIX中,通過readlines函數都會把所有行讀成一行。這時候,需要用split函數進行處理。
作者: lpy123456    时间: 2012-07-03 22:03
7楼正解 多谢..
作者: cdtits    时间: 2012-07-04 10:28
回复 7# OneZ


    rstrip 不行么?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2