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”中删除了
此屏幕截图可以解释我的全部想法
答案 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]