Python 使用循环打开并处理带有csv的txt文件

Python 使用循环打开并处理带有csv的txt文件,python,csv,for-loop,syntax,Python,Csv,For Loop,Syntax,我有数据(txt文件中混合了文本和数字),我想写一个for循环,创建列表列表,这样我就可以用更少的行处理所有文件中的数据 到目前为止,我写了以下内容: import csv path = (some path...) files = [path + 'file1.txt',path + 'file2.txt', path + 'file3.txt', ...] for i in files: with open(i, 'r') as j: Reader = csv.

我有数据(txt文件中混合了文本和数字),我想写一个for循环,创建列表列表,这样我就可以用更少的行处理所有文件中的数据

到目前为止,我写了以下内容:

import csv

path = (some path...)
files = [path + 'file1.txt',path + 'file2.txt', path + 
'file3.txt', ...]

for i in files:
    with open(i, 'r') as j:
        Reader = csv.reader(j)
        List = [List for List in Reader]
我想我会覆盖
List
而不是创建一个嵌套列表,因为我得到了大小为1的
Reader
和一个包含其中一个文件的维度的列表

我的问题是:

  • 考虑到文件可能包含不同的行号,保存一些代码行是正确的方法吗?(还有什么可以做得更好?)
  • 我想问题出在
    [List for List in Reader]
    中,有没有办法更改它,这样我就不会覆盖
    列表
    ?类似“添加到
    列表”
  • 是,使用
    .append()

    是,使用
    .append()

    您可以使用list方法添加到现有的
    列表中。由于
    csv.reader
    实例是iterable对象,您只需将其中一个传递给方法,如下所示:

    import csv
    from pathlib import Path
    
    path = Path('./')
    filenames = ['in_file1.txt', 'in_file2.txt']  # etc ...
    List = []
    
    for filename in filenames:
        with open(path / filename, 'r', newline='') as file:
            List.append(list(csv.reader(file)))
    
    print(List)
    
    更新

    一种更简洁的方法是使用一种叫做“”的东西:

    您可以使用list方法添加到现有的
    列表中。由于
    csv.reader
    实例是iterable对象,您只需将其中一个传递给方法,如下所示:

    import csv
    from pathlib import Path
    
    path = Path('./')
    filenames = ['in_file1.txt', 'in_file2.txt']  # etc ...
    List = []
    
    for filename in filenames:
        with open(path / filename, 'r', newline='') as file:
            List.append(list(csv.reader(file)))
    
    print(List)
    
    更新

    一种更简洁的方法是使用一种叫做“”的东西:


    好主意。创建的列表不是要求的列表列表,这会使文件之间很难区分。哦……如果是这样,我想您需要列表列表。请参阅更新。此外,是的,使用它通常是一种很好的做事方式——我正在努力养成使用它而不是使用它的习惯。使用Path的好主意。创建的列表不是要求的列表列表,这会使文件之间很难区分。哦……如果是这样,我想您需要列表列表。请参阅更新。而且,是的,使用它通常是一种很好的做事方式——我正在努力养成使用它而不是使用它的习惯。
    import csv
    from pathlib import Path
    
    path = Path('./')
    filenames = ['in_file1.txt', 'in_file2.txt']  # etc ...
    List = [list(csv.reader(open(path / filename, 'r', newline='')))
                for filename in filenames]
    
    print(List)