正在用rstrip(“\n”)从读取行中删除\n

2024-09-28 01:30:14 发布

您现在位置:Python中文网/ 问答频道 /正文

im每行读取2个包含字符串的文件 在我的代码中,我把proxyfile中的1行和websitefiles中的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”中删除了\n,但无法从“j”中删除它

这个截图可以解释我的所有想法 screen1


Tags: 文件字符串代码txtopenzipsitesproxy
1条回答
网友
1楼 · 发布于 2024-09-28 01:30:14

一个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在没有指定参数的情况下,会在删除终止字符的同时拆分为行。唯一的缺点是文件太大。在这种情况下,您可能会遇到内存问题(read+split所需的内存是原来的两倍)。在这种情况下,您可以:

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

相关问题 更多 >

    热门问题