linux 和 python 中的高级文件处理

Advanced File handling in linux and python

我有一段代码可以对 Python 中的文件进行一些更改。我希望对一个文件夹的多个文件执行该操作。我写了下面的代码来做到这一点:

进口重新 导入 os 文件 = os.listdir("/home/intucell/tarfiles") 对于文件中的文件: fp = 打开(文件,'r') 对于 fp 中的行: print(line.replace ('4.0.0', '5.0.0')) f.close()

我希望代码 运行 用于名为 tarfiles 的文件夹中的多个文件。这些文件的名称必须从该文件夹的列表中读取。但是,Linux 不读取包含空格的文件名。我有大约 100 个文件名中包含空格。我该怎么做?

假设您有要处理的文件列表 filelist,您可以简单地使用:

import re
for filename in filelist:
    fp = open (filename, 'r') 
    for line in fp: print(line.replace (' 4.0.0 ', ' 5.0.0 '))
         print(re.sub(r'\b4.0.0[^.]', '5.0.0 ', line))`

或者您需要查找文件夹中的文件吗?

您可以为此使用 for 循环。例如

import os
item_list = next(os.walk(your_directory_path))[1]
for i in item_list:
     fp = open (str(i), 'r')
     for line in fp: print(line.replace (' 4.0.0 ', ' 5.0.0 '))
         print(re.sub(r'\b4.0.0[^.]', '5.0.0 ', line))

希望对你有所帮助

您可以使用os.listdir,假设您要更改的多个文件位于路径变量中存储的文件夹中,则:

files = os.listdir(path)
for _file in files:
    fp = open (_file, 'r')
    for line in fp:
        print(line.replace (' 4.0.0 ', ' 5.0.0 '))
        print(re.sub(r'\b4.0.0[^.]', '5.0.0 ', line))

编辑: 也不要忘记 import os