Python:无法从str中删除换行符

时间:2014-08-28 18:02:12

标签: python shell

这有点奇怪,但在这里。

下面是一些代码,它将文件作为日志打开,并将一些控制台输出传递给它。稍后,我打开该文件,并希望将文件的内容(每行是文件的目录路径)复制到我当前的目录中,但是我的shell返回一个错误,说它无法找到该文件,因为它有一个新行附加到它。当我在脚本中打印该行时,它没有换行符,但是当我尝试在脚本中复制它时,它给出了什么?

with open("log.txt", 'a+') as log:
    for something in something_else:
        p1 = subprocess.Popen(["script.py", "-x", "-options"], stdout=subprocess.PIPE)
        p2 = subprocess.Popen(["egrep", 'abc|xyz'], stdin=p1.stdout, stdout=log, universal_newlines=True)
        p1.stdout.close()
        output = p2.communicate()[0] #Debug purposes

稍后......

with open("log.txt") as log2:
    for line in log2:
        line = re.sub(".pattern", "pattern", line)
        line.rstrip() #doesn't work
        call(['cp', line, '.'])

我的shell返回:cp无法统计`path / to / dir ** \ n **'没有这样的文件或目录

2 个答案:

答案 0 :(得分:4)

字符串在Python中是不可变的,而是使用line = line.rstrip()

答案 1 :(得分:3)

这是因为line.rstrip()会返回原始字符串的副本(请参阅docs)。

line = line.rstrip()这样的事情应该可以胜任。