linux和python中的高级文件处理

时间:2017-08-01 08:48:06

标签: python file file-handling

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

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

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

3 个答案:

答案 0 :(得分:0)

假设您有想要处理的文件列表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))`

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

答案 1 :(得分:0)

你可以使用for循环。 E.g

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))

我希望这会有所帮助

答案 2 :(得分:0)

你可以使用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