从同一目录读入两个文件

Read in two files from same directory

我正在 Python 中编写一个程序,它试图从同一目录中读取两个不同的文件。我的代码如下所示:

for i in spectra_files:                                           
    with open(i, 'r') as f:
        numbers = []  #list to store all mass spectrum data directly from file before being processed
        for line in f:
            if line[0].isdigit():  #skips header in file
                numbers.append(line)

        str_data = ''.join(numbers)
        #creates list for the mass and list for the intensity. to be used for plotting
        spectrum_mass = [int(x.split(',')[0].strip()) for x in str_data.split()]
        spectrum_intensity = [int(x.split(',')[1].strip()) for x in str_data.split()]
        spectrum_mass.append('||')
        spectrum_intensity.append('||')
        spectra_files = spectra_files[spectra_files.index(i)+1:]

目前我让它循环遍历文件名列表,然后将它们的数据添加到列表 spectrum_mass 和 spectrum_intensity。然而,这不起作用,它只是添加列表中最后一个文件的数据。有什么建议吗?

一些注意事项:

  • 扩展您在循环外部构建的列表。
  • 您在迭代时不需要更改您迭代的列表。我指的是您在循环结束时更改的 spectra_files 列表 (spectra_files = spectra_files[spectra_files.index(i)+1:])

.

spectrum_mass = []
spectrum_intensity = []
for i in spectra_files:                                           
    with open(i, 'r') as f:
        numbers = []  #list to store all mass spectrum data directly from file before being processed
        for line in f:
            if line[0].isdigit():  #skips header in file
                numbers.append(line)

        str_data = ''.join(numbers)
        #creates list for the mass and list for the intensity. to be used for plotting
        spectrum_mass.extend(int(x.split(',')[0].strip()) for x in str_data.split())
        spectrum_intensity.extend(int(x.split(',')[1].strip()) for x in str_data.split())
        spectrum_mass.append('||')
        spectrum_intensity.append('||')

在循环外创建列表。对于每次迭代,列表都会被覆盖。还有一个建议; 当你提问时;请跳过不相关的代码,你在做什么与文件中的行做一个最小的虚拟代码。它使跟踪和回答变得更加容易。

在您的代码中,您仍然没有同时 "Reading" 在 2 个文件中。您一次循环读取一个文件,并同时读取 2 个列表中的 "Writing"。

希望对你有帮助