【问题标题】:Using a wildcard in the path with os.path.getsize() returns error: OSError在 os.path.getsize() 的路径中使用通配符会返回错误:OSError
【发布时间】:2019-12-19 19:06:09
【问题描述】:
import os

csv = "./CSV/*.csv"

os.path.getsize(csv)

我在目录 /CSV 下有 1 个文件,它是一个 .csv 文件。我想获取该文件的大小。我不想在代码中使用文件名,因为 .csv 文件会定期更改。 当前返回错误:

OSError: [WinError 123] 文件名、目录名或卷标语法不正确:'./CSV/*.csv'

我尝试了几种不同的方法,包括使用 glob,大多数时候我只设法返回文件名而不是实际文件本身。

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 你试过csv = "CSV/*.csv"。并且您正在与 CSV 文件夹并行运行,对吗?
  • 你的路径一定是无效的,尝试使用绝对路径而不是相对路径
  • 我试过了,是的。我的工作目录是 CSV 之上的目录。 IE。文件在Project/CSV/file.csv,我在Project目录下。

标签: python python-3.x os.path


【解决方案1】:

使用glob

import os
import glob

csv_files = glob.glob('./CSV/*.csv') #THIS RETURNS A LIST EVEN IF THERE IS A SINGLE MATCH
for csv_file in csv_files:
    print(os.path.getsize(csv_file))

【讨论】:

    【解决方案2】:

    你在尝试这样的事情吗?

    import os
    import glob
    In [68]: csv_files = glob.glob('./CSV/*.csv')
    In [69]: size_obj = {}
    In [70]: for file in csv_files:
        ...:     size_obj[file] = os.path.getsize(file)
        ...:    
    

    【讨论】:

      猜你喜欢
      • 2021-04-07
      • 2020-03-14
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多