使用for循环在名称相似的多个文件上完成方法

时间:2019-03-09 16:49:18

标签: python

我是Python的新手,所以我不确定这叫什么。

如何在文件名后加上数字(例如Myfile1,Myfile2)对文件执行某些操作(附加到变量,读取变量等)?

让我们假设有1000个文件,因此不可能单独键入每个数字。

for n in range(0,1000):
    Myfile + str(n) = pd.read_csv(str(file(n)))

# Another example
for n in range(0,9):
    shape_201 + str(n) = (happiness201 + n).shape

通配符有点像星号(*)?既然我已经输入了此信息,就可以想到正则表达式...这是最好的方法吗?

2 个答案:

答案 0 :(得分:0)

鉴于您有1000个文件,它们都共享相同的基本名称,则可以使用以下代码。

dired-do-rename

答案 1 :(得分:0)

我不完全确定一旦找到文件,您将如何处理这些文件,但是我会基于其他评论者的建议避免正则表达式,而是使用glob。

为此,我假设您的文件采用以下命名格式:

  • File1.csv
  • File2.csv
  • ...

由于它的灵活性,我偏爱Pathlib,所以我会这样做:

from pathlib import Path
baseDir = Path('/your/directory/here')
for fileName in baseDir.glob('File*.csv'):
    print(f'Found file {fileName}')
    # do whatever you want to do with each file, read, add to list, etc