如何在运行时更改目录并将文件存储在不同的位置

2024-05-07 17:22:17 发布

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

假设我正在将学生详细信息作为列表写入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"

Tags: 文件csv目录文件夹home列表ubuntu详细信息
1条回答
网友
1楼 · 发布于 2024-05-07 17:22:17

据我所知,您需要将同一个文件保存在两个不同的目录中,并以一种方便的方式进行。 至少有两种方法:

  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)
    

在这种情况下,目标路径的文件名可能被排除在外,并与源路径中的文件名相同

相关问题 更多 >