【问题标题】:How to create new csv files from a directories with python?如何使用 python 从目录创建新的 csv 文件?
【发布时间】:2021-06-29 10:23:16
【问题描述】:

我有一些用此代码过滤的 csv 文件,它可以工作:

with open('path' , 'r')as f:
            for lines in f:
                if '2020-12-31' in lines:
                    line_data = lines.split(';') 
                    filtered_list.append(line_data)
                    newfile.write(lines)

首先我想这样做,但对于我文件夹中的所有 csv 文件。

其次,如果可能的话,我想在提示命令行中执行此操作(使用 sys?)。

我试过了:

import os 
from os import walk
from pathlib import Path

dir = r'myPathFolder1' 
target = r'myPathFolder2'
 
filtered_list=[]
for filenames in os.listdir(dir):
    for f in filenames:
        if f.endswith(".csv"):
            newfile = open(dir + f, 'w')
            with open(f , 'r') as t:
                for lines in t:
                    if '2020-12-31' in lines:
                        line_data = lines.split(';') 
                        filtered_list.append(line_data)
                    newfile.write(lines)

但它不起作用。

【问题讨论】:

标签: python csv operating-system


【解决方案1】:

完整的代码是,我试过我的代码,它会复制到另一个文件夹。

import os,fnmatch

dir = "C:\\Users\\Frederic\\Desktop\\"
def find(pattern, path):
    result = []
    for root, dirs, files in os.walk(path):
        for name in files:
            if fnmatch.fnmatch(name, pattern):
                result.append(os.path.join(root, name))
    return result
filtered_list = find('*.csv', dir)
print(filtered_list)

for filenames in filtered_list:
    print(filenames)
    for f in filtered_list:
        if f.endswith(".csv"):
            print(f.endswith(".csv"))
            base_dir_pair = os.path.split(f)

            address = "C:\\Users\\Frederic\\Desktop\\aa\\"
            address = address + base_dir_pair[1]
            print(address)
            newfile = open(address, 'w')
            with open(f, 'r') as t:
                print("in1")
                for lines in t:
                    print("in2")
                    if '2020-12-31' in lines:
                        print("in3")
                        line_data = lines.split(';')
                        filtered_list.append(line_data)
                        newfile.write(lines)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    相关资源
    最近更新 更多