使用rstrip(“ \ n”)从阅读行中删除\ n

时间:2019-08-16 11:09:04

标签: python python-2.7

im每行读取2个包含字符串的文件 并在我的代码中彼此分组,从代理文件中获取1行,从网站文件中获取3行 当我尝试从第二个文件打印行时的主要问题是我无法删除\ n

我尝试使用rstrip(“ \ n”),但出现此异常

AttributeError: 'tuple' object has no attribute 'rstrip'

这是我的代码:

proxy = open("proxy.txt",'r')
readproxy = proxy.readlines()

sites = open("websites.txt",'r')
readsites = sites.readlines()

for i,j in zip(readproxy, zip(*(iter(readsites),) * 3)):

    try:
        i = i.rstrip("\n")
        #j = j.rstrip("\n")
        print(i,j)
    except ValueError:
        print 'whatever'

i已成功从“ i”中删除了\ n,但已小心地将其从“ j”中删除了

此屏幕截图可以解释我的全部想法 screen1

1 个答案:

答案 0 :(得分:2)

tuple并没有一种神奇地传播到所有字符串元素的方法。

为此,您必须对列表理解中的所有项目应用rstrip才能创建list

j = [x.rstrip("\n") for x in j]

重建一个list,其中的项目已被删除。如果确实需要,请转换为tuple

j = tuple(x.rstrip("\n") for x in j)

请注意,您可以这样做:

readsites = sites.read().splitlines()

而不是sites.readlines(),因为如果没有指定参数,splitlines会分成几行,同时删除终止符。唯一的缺点是文件很大时。在这种情况下,您可能会遇到内存问题(读+拆分所需的内存增加了一倍)。在这种情况下,您可以这样做:

with open("websites.txt",'r') as sites:
    readsites = [line.rstrip("\n") for line in sites]