Python-txt文件操作

2024-06-25 22:54:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件夹的文件,并想分开两个变量的文件。你知道吗

例如,以下文件:

EXfileone.txt
fileone.txt
EXtest.txt
simple.txt

现在我不能做的是(在伪代码中):

If "EX" in filename:
    add file to variable: EXFILES

IF "EX" not in filename:
    add file to variable : NORMALFILES

所以现在:

EXFILES = [EXFfileone.txt, EXtest.txt]
NORMALFILES = [fileone.txt, simple.txt]

然后我将使用for循环对文件进行操作:

for file in EXFILES:
    ...

我用的是python3。你知道吗


Tags: 文件tointxtaddforfilenamesimple
3条回答

您只需使用标准库glob模块来匹配路径名:

import glob


EXFILES = []
NORMALFILES = []

filename_list = glob.glob("*.txt")

for filename in filename_list:
    if "EX" in filename:
        EXFILES.append(filename)
    else:
        NORMALFILES.append(filename)

试试这个:

from pathlib import Path

folder = Path('/path/to/your/folder')

exfiles = list(folder.glob('EX*.txt'))
normalfiles = [f for f in folder.glob('*.txt') if not f.name.startswith('EX')]

这会给你想要的文件列表。你知道吗

但最好是这样做:

from pathlib import Path

folder = Path('/path/to/your/folder')

for f in folder.glob('*.txt'):
    if f.name.startswith('EX'):
       # do something with your EX*.txt file
    else:
       # do something with your normal file

希望对你有帮助。你知道吗

您可以使每个变量成为一个列表,并存储其中文件的名称:

from os import listdir
from os.path import isfile, join

folder_path = '/home/youruser/example' # path to folder

# classify files
exfiles = []
normalfiles= []

for f in listdir(folder_path):
    if isfile(join(folder_path, f)):
        if f.startswith('EX'):
            exfiles.append(join(folder_path, f))
        else:
            normalfiles.append(join(folder_path, f))

for fname in exfiles:
    with open(fname) as f:
        # do operations

相关问题 更多 >