【问题标题】:Unable to read filenames in a for loop and print the arrays无法在 for 循环中读取文件名并打印数组
【发布时间】:2021-09-19 14:56:25
【问题描述】:

我正在尝试遍历包含 70 个 csv 文件的文件夹。每个文件有 2 列,我想将它们存储在 2 个不同的数组中。我无法打印文件夹中的文件名,并且我的数组没有被附加。我希望输出生成带有相应数组的文件名。

path=r"E:\Users\ConfocalUser\Documents\GitHub\qudi"
files=glob.glob(os.path.join(path,'*.csv')

xData=[]
yData=[]
for file in files:
    print(file)
    with open(path,"r") as f_in:
        reader=csv.reader(f_in)
        next(reader)
        for line in reader:
            try:
                float_1,float_2=float(line[0]),float(line[1])
                xData.append(float_1)
                yData.append(float_2)
            except ValueError:
                continue

【问题讨论】:

  • 用file替换path并检查

标签: python arrays csv glob


【解决方案1】:

你为什么这样做

    with open(path,"r") as f_in:
        reader=csv.reader(f_in)
        next(reader)

而不是

    with open(file,"r") as f_in:
        reader=csv.reader(f_in)

reader() 需要一个 csv 文件,而不是路径名列表。

【讨论】:

  • 我仍然无法打印文件和数组
  • 无法获取任何输出文件名,from glob import glob #更改当前工作目录 os.chdir(r"E:\Users\ConfocalUser\Documents\GitHub\qudi") print( os.getcwd()) 获取 glob 中的文件名("/*csv"): print(filename)
  • @AngelaMary 使用os 模块来更改目录并获取文件而不是glob
  • 您的 OP 中的前两行是正确的,并将返回 files 中的文件名列表
猜你喜欢
  • 2020-09-08
  • 2020-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多