Как изменить каталог во время выполнения и сохранить файл в другом месте - PullRequest
1 голос
/ 10 июля 2019

Предположим, я записываю данные об ученике в виде списка в файл CSV. В настоящее время я работаю в каталоге:

/home/ubuntu/Desktop/Pythontraining

но я хочу сохранить файл CSV в папке "StudentDetails", которая находится в:

/home/ubuntu/Desktop/StudentDetails 

а также

/home/ubuntu/Documents/StudentDetails

Я хочу сохранить файл CSV в обоих каталогах во время выполнения. Я создаю новый файл (outfile), но хочу сохранить его в другом каталоге. Скажем, мне нужно сохранить «outfile» в папке с именем «StudentDetails». В моем случае я создал папку «StudentDetails» в двух разных каталогах.

Я хочу сохранить файл (outfile) в обоих каталогах. Как мне сделать это вручную?

try:
 f=open(outfile, 'w')
 for j in m:
   writer = csv.writer(f)
   writer.writerow(j)
except OSError:
 print "Can't Change the current directory"

1 Ответ

0 голосов
/ 10 июля 2019

Как я понял, вам нужно сохранить один и тот же файл в двух разных каталогах, и сделать это удобным способом.Существует по крайней мере два способа:

  1. Вы можете создать функцию, которая будет сохранять нужные данные в двух разных файлах в цикле.И нам нужна функция для того, чтобы наш код читался:

    def multiple_save_st_details(m, path1, path2):
        for outfile in [path1, path2]:
            try:
                f=open(outfile, 'w')
                for j in m:
                    writer = csv.writer(f)
                    writer.writerow(j)
            except OSError as o:
                print("Can't Change the current directory")
    
  2. У нас есть файл в первое место, а затем скопируйте его в другой каталог:

    def save_w_copy_st_details(m, filepath1, path2):
        try:
            f=open(filepath1, 'w')
            for j in m:
                writer = csv.writer(f)
                writer.writerow(j)
        except OSError as o:
            print("Can't Change the current directory")
        import shutil
        shutil.copy2(filepath1, path2)
    

В этом случае имя файла для целевого пути может быть исключено и будет таким же, как в исходном

...