Python:在第一个函数中使用oswalk查找文件,传递名称,然后在第二个函数中尝试打开

2021-09-27 07:02:12 发布

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

我尝试使用两个函数来查找文件并对其进行处理,其输出最终将发送到SQlite3数据库。我有第二部分工作时不是一个函数,但为此,需要输入每个文件的名称进行处理。我希望它是自动化的,因此oswalk的第一个功能。但是,当我添加第一个函数(查找文件并将其返回给第二个函数)时,出现了一些问题。在发布的代码中,我只想测试文件是否被传递,是否可以一次打开和读取一个文件。你知道吗

关于正在发生的事情的注释和指向输出的指针(将粘贴在代码下面)在下面的代码中散列出来。你知道吗

import os
import fnmatch

def findFiles (path, filter):
    Files = []
    for root, dirs, files in os.walk(path):
        for file in fnmatch.filter(files, filter):
           Files.append(os.path.join(root, file))
    return Files

def fastq2SQlite(Files):
    for file in Files:
        print file    ## At this point, I have a list of files.  See "A" below.  

        with open(file, 'r'):  ##If this block is then added, it's evident that the files shown 
                               ##in "A" are not being recognized as files.  Output is "A" 
                               ##transposed, each line a letter of a file name.
            for line in file:
                print line

输出“A”
C:/Users/Documents/JKC10/测试.txt
C:/Users/Documents/JKC10/test2.txt
C:/Users/Documents/JKC10/test3.txt
没有

我甚至尝试通过修改文件使其名称变为(示例): 'C:/Users/Documents/JKC10/test_顺序文件'

通过添加如下所示的块:

def fastq2SQlite(Files):
    for file in Files:
        f = "'" + file + "'"