【问题标题】:Problem with entering loop in reading file Python 3在读取文件 Python 3 时进入循环的问题
【发布时间】:2019-08-14 11:53:05
【问题描述】:

我的代码有问题 - 它没有进入“for line in f2”循环。 此代码应该比较两个文件,如果一个文件中第 0 列中的字符串与第二个文件中第 1 列中的搅拌匹配,则将其写入文件。

我是 Python 的初学者,所以我不知道出了什么问题。我尝试调试,但没有提供任何帮助。有谁知道我做错了什么?

f1=open("D:\\bowtie2\\posortowane_cale_test.csv","w")
with open("D:\\bowtie2\\dobazy228k_test.csv") as f:
    for yy in f:
        y=yy.split(";")
        #print(y)
        #sp1=y[1]
    with open ("D:\\bowtie2\\zliczone_test.csv") as f2:
        for xx in f2:
            xx=xx[0:len(xx)-1]
            x=xx.split(";")
        for line in f2:
            sp1=y[0]
            sp2=x[1]
            print("bb")
            if sp1==sp2:
                print("aaa")
                f1.write(x[1]+";"+y[0]+"\n")#";"+x[1]+";"+x[2]+";"+x[3]+";"+x[6]+";"+x[7]+";"+x[8]+";"+sp1+"/"+sp2+"\n")
    f2.close()
f.close()
f1.close()

【问题讨论】:

标签: python file


【解决方案1】:

第一次完整读取后,使用f2.seek(0) 再次跳转到文件的开头。即使您没有直接使用 read 方法,读取指针仍会移动到最后一个读取字节/字符之后的位置。

【讨论】:

    【解决方案2】:

    回答建议

    似乎您的缩进级别已关闭,因为您首先迭代 f 并且变量 y 被覆盖。只有这样,您才尝试比较。还, for xx in f2: 等价于 for line in f2:。 如果我正确解释了您的代码,则删除 for line in f2: 并打算使用包括 with open ("D:\\bowtie2\\zliczone_test.csv") as f2: 和之后的所有内容来修复代码。

    旁注

    附带说明,您可以在字符串之前使用 r

    “D:\bowtie2\posortowane_cale_test.csv”

    将以下字符串解释为原始字符串,这意味着字符串中的 **** 不再被视为转义字符,您可以复制粘贴文件路径:

    r"D:\bowtie2\posortowane_cale_test.csv"

    【讨论】:

      猜你喜欢
      • 2013-08-07
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      相关资源
      最近更新 更多