Python 2.7 如何在python中同时打开两个具有相同名称和不同扩展名的文件?

Python 2.7 如何在python中同时打开两个具有相同名称和不同扩展名的文件?,python-2.7,file,io,Python 2.7,File,Io,我有一个包含多个文件的文件夹: a.txt a.json b.txt b.json import os from collections import defaultdict EXTENSIONS = {'.json', '.txt'} directory = '/path/to/your/files' grouped_files = defaultdict(int) for f in os.listdir(directory): name, ext = os

我有一个包含多个文件的文件夹:

  a.txt
  a.json

  b.txt
  b.json
import os
from collections import defaultdict

EXTENSIONS = {'.json', '.txt'}

directory = '/path/to/your/files'

grouped_files = defaultdict(int)

for f in os.listdir(directory):
    name, ext = os.path.splitext(os.path.join(directory, f))
    if ext in EXTENSIONS:
        grouped_files[name] += 1

for name in grouped_files:
    if grouped_files[name] == len(EXTENSIONS):
        with open('{}.txt'.format(name)) as txt_file, \
                open('{}.json'.format(name)) as json_file:
            # process files
            print(txt_file, json_file)
等等:

使用for循环,我想同时打开两个文件(a.txt和a.json)


在python中有没有一种使用“with”语句的方法

您可以执行以下操作,构造一个由文件名sans扩展名键入的字典,并计算与所需扩展名匹配的文件数。然后,您可以遍历字典,打开成对的文件:

  a.txt
  a.json

  b.txt
  b.json
import os
from collections import defaultdict

EXTENSIONS = {'.json', '.txt'}

directory = '/path/to/your/files'

grouped_files = defaultdict(int)

for f in os.listdir(directory):
    name, ext = os.path.splitext(os.path.join(directory, f))
    if ext in EXTENSIONS:
        grouped_files[name] += 1

for name in grouped_files:
    if grouped_files[name] == len(EXTENSIONS):
        with open('{}.txt'.format(name)) as txt_file, \
                open('{}.json'.format(name)) as json_file:
            # process files
            print(txt_file, json_file)
我有两个不同文件的文件夹,一个是.jpg,另一个是.xml。我就是这样把它们放进另一个文件夹的


您是否预先知道文件名,或者您正在从目录中读取它们?你能详细说明一下你到底想达到什么目的吗?你的实际问题还不太清楚。查找成对的文件名?打开文件?下面介绍如何使用
同时打开多个文件:是的,我事先知道文件名。它们是一系列名称相同但扩展名不同的夫妇。我必须一对一对地打开名称相同但扩展名不同的文件。我已经看到了上面的链接,但它不起作用,因为我在多个文件上使用for循环,每次都无法写入文件名。