【问题标题】:Read multiple .txt files in a single folder读取单个文件夹中的多个 .txt 文件
【发布时间】:2017-04-21 11:40:17
【问题描述】:

我想从单个文件夹中的多个 .txt 文件中读取,并将每一行作为列表读取。

这是我的代码,但它什么也没打印。

import glob
import errno
path = '/Users/xccxken/PycharmProjects/untitled7/NNRelease/*.txt'
files = glob.glob(path)
for name in files:
    try:
        with open(name) as f:
            for line in f:
                words = list()
                for word in line.split():
                    words.append(word)
    except IOError as exc:
        if exc.errno != errno.EISDIR:
            raise
    print(words)

我希望结果是两个列表 a 和 b

a=[class,company,family,..]
b=[size, size, size,...]

另一个问题是打印列表包含一些空列表,(我认为这是因为原始 txt 文件有空行)请告诉我如何删除这些空列表。谢谢!

另外,我需要删除包含“#”的列表谢谢!

【问题讨论】:

    标签: python list text glob


    【解决方案1】:

    我认为files 可能是空的。使用绝对路径,或者os.chdir进入目录

    import glob
    import errno
    path = 'C:/Users/xccxken/PycharmProjects/untitled7/NNRelease/*.txt' #note C:
    files = glob.glob(path)
    for name in files:
        try:
            with open(name) as f:
                for line in f:
                    print(line.split())
        except IOError as exc: #Not sure what error this is
            if exc.errno != errno.EISDIR:
                raise
    

    只打印带有数据的行

        with open(name) as f:
            for line in f:
                split = line.split()
                if split:
                    print(line.split())
    

    【讨论】:

    • 另一个问题是打印列表包含一些空列表,(我认为是因为原始txt文件有空行)你能告诉我如何删除这些空列表吗?非常感谢您的宝贵时间!
    • 非常感谢!还有一个问题我刚刚发现需要删除包含“#”的列表,非常感谢您的宝贵时间!
    • # 作为它自己的元素或类似 #5 的东西?
    • 谢谢!例如,我想删除 ['#...']、['#shortfall/shortage'、'-'、'conflict'、'between'、'DESIRED/USED'、'amount'、'and ', '可用/存在', '数量'], ['#attribute']
    • if split and all('#' not in i for i in split)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 2018-02-23
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多