根据情节选择复制文件

copy files based on choice of plot

我在 directory.At 中有很多 .txt 文件,首先我想在屏幕上一个一个地绘制文件,如果它看起来不错,那么我想将 .txt 文件复制到一个名为“ test_folder”。 如果它看起来不正常,那么我不想将 .txt 文件复制到“test_folder”目录。

我尝试了下面的脚本,但是我无法做到这一点,因为我是 python 的新手。希望高手帮我提前克服这个问题problem.Thanks

import numpy as np
import os,glob,shutil
import matplotlib.pyplot as plt

os.mkdir('test_folder')

for filex in glob.glob("*.txt"):
    print(filex)
    data=np.loadtxt(filex)
    plt.plot(data)
    plt.show()

    if plot_looks_nice == "yes": 
    #copy the filex to the directory "test_folder"
       shutil.copy(filex,'test_folder')
    elif plot_looks_nice == "no": 
    #donot copy the filex to the directory "test_folder"
         print("not copying files as no option chosen")
    else: 
    print("Please enter yes or no.") 

你很接近。您想使用 input() 来提示用户并通过他们的输入取回一个变量。

创建目录最好的方法是使用pathlib (python >= 3.5) 递归创建目录,如果它们不存在。这样您就不必担心由于目录不存在而导致的错误

查看下面修改后的代码。

import numpy as np
import os,glob,shutil
import matplotlib.pyplot as plt
from pathlib import Path

Path("test_folder").mkdir(exist_ok=True)

for filex in glob.glob("*.txt"):
    print(filex)
    data=np.loadtxt(filex)
    plt.plot(data)
    plt.show()

    plot_looks_nice = input('Looks good? ')

    if plot_looks_nice == "y": #use single letters to make your work faster
    #copy the filex to the directory "test_folder"
       shutil.copy(filex,'test_folder')
    elif plot_looks_nice == "n": 
    #donot copy the filex to the directory "test_folder"
         print("not copying files as no option chosen")
    else: 
    print("Please enter \'y\' or \'n\'.")