Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对csv文件进行排序,并仅复制标题中包含关键字的行_Python_Csv - Fatal编程技术网

Python 对csv文件进行排序,并仅复制标题中包含关键字的行

Python 对csv文件进行排序,并仅复制标题中包含关键字的行,python,csv,Python,Csv,我有多个csv文件,它们由\t(选项卡)分隔。 在每个文件中都有一行数据,其左侧有一个时间轴 注意:多个数据集可以具有相同的时间线!没有模式检测 我想循环浏览所有文件,在每个文件中我想循环浏览每个标题(单词) 然后,我想将标题名(I51_RH_T)中带有(例如:I51)的数据行复制到一个新文件(称为I51)中,并带有相应的时间线! 我还想循环通过标题的多个关键字 这就是我设法做到的: import re, csv, os, keywords = ["I01", "

我有多个csv文件,它们由\t(选项卡)分隔。 在每个文件中都有一行数据,其左侧有一个时间轴 注意:多个数据集可以具有相同的时间线!没有模式检测

我想循环浏览所有文件,在每个文件中我想循环浏览每个标题(单词) 然后,我想将标题名(I51_RH_T)中带有(例如:I51)的数据行复制到一个新文件(称为I51)中,并带有相应的时间线! 我还想循环通过标题的多个关键字

这就是我设法做到的:

import re, csv, os, 

keywords = ["I01", "I02", "I03"]

Input_Dir = "E:/MA/05_Sensordaten/Sensordaten txt/"
files = os.listdir(Input_Dir)

i = 0
zz = 0

for each in keywords:
    keyword = str(keywords[i])

    #print(files)
    for file in files:

        if zz <= len(files) -1:
            #print(files[zz])
            file_and_path = Input_Dir + files[zz]
            with open(file_and_path, "r") as csv_file:
                csv_reader = csv.reader(csv_file, delimiter = "\t")
                #print(csv_file)
                with open("G:/MA/05_Sensordaten/Sensordaten sortiert/Aufbau" + keyword + ".txt", "w") as new_file:
                    csv_writer = csv.writer(new_file, delimiter=" ")  # \t = TAB
                    j = 0
                    for words in csv_reader:
                        if j <= 400:
                            j += 1
                            while re.match(keyword, words[j]):
                                print(words[j])
                                j += 1
                        else:
                            break
        zz += 1
    i += 1


欢迎任何帮助

真诚的丹尼尔

for word in csv_reader:
    x = re.search(keyword, word) #Sucht Aufbau in csv_reader
    print(x)
在这里,您可以在
word
您必须为此字典中的键或值再添加一个循环,例如

for word in csv_reader:
    for key in word.keys():
        x = re.search(keyword, key) #Sucht Aufbau in csv_reader
        print(x)

但是,如果
关键字
不是正则表达式模式,而只是文字字符串,那么使用
re
是没有意义的,如果key:print(keyword)中的关键字就足够了。
for word in csv_reader:
    for key in word.keys():
        x = re.search(keyword, key) #Sucht Aufbau in csv_reader
        print(x)