Создать CSV-файл с тем же именем файла чтения - PullRequest
0 голосов
/ 07 апреля 2020

Я читаю несколько CSV-файлов в папке, у файла для чтения есть имена примерно такие, как m1, m2, m3, ... поэтому мне нужно создать CSV-файл (я помещаю новый файл в другой путь), имеют те же имя файла для чтения, как это можно сделать? например, если имя первого прочитанного файла (m1), имя нового файла должно быть (m1)

fpath = '/path/*' 
for file in iglob(fpath):
    with open(file) as f:
        for i in f:
            try:
               #some processing            
            except ValueError:
                pass
    with open('C:\\write\\ .csv','w') as ff:   
        ff.write()

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

Вы можете использовать это:

import os
from glob import iglob

source = '/path/*' 
for path in iglob(source):
    destfilepath = os.path.join('C:/write', os.path.basename(path).replace(".txt", ".csv"))
    with open(path, "r") as f1, open(destfilepath, 'w') as f2:
        for line in f1:
            try:
            # some processing on line
                pass
            except ValueError:
                pass

            f2.write(line) # --> write the processed line to output file
0 голосов
/ 07 апреля 2020

Когда вы набираете oop путей к файлам, просто посмотрите, получите ли вы полное имя файла.

Я предполагаю, что вы должны получить что-то вроде: "/path/m1.csv"

чтобы вы могли получить имя файла следующим образом:

filename = file.split("/")[-1].split(".")[0]

Если у вас есть имя файла, когда вы пишете файл, просто сделайте следующее:

with open('C:\\write\\{}.csv'.format(filename),'w') as FF:   
    ff.write()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...