操作文件Python 2.7

时间:2016-10-21 14:10:14

标签: python python-2.7

民间,

我在这里操作文件很困难。

目标:我正在开发一个需要从源创建文件夹和复制文件的脚本,该脚本会向用户读取要创建的月数。如果在2017年需要将字符串更改为.txt文件到目录中,该脚本将复制文件等于要创建的月数。

文件中的原始字符串:ANO INICIO DO ESTUDO 2016 字符串将被更改:ANO INICIO DO ESTUDO 2017

PS:要更改的文件不是原件而是副本

可以从txt文件更改一行吗?

我需要什么:

读取程序源文件并播放到数组 识别数组中字符串的一部分 如果发现字符串是字符串的一部分,则修改该字符串 删除源文件并使用相同的名称编写另一个文件,或者只是更改源文件中的字符串(一行中的单词)。

FILENAME_NEWAVE = Path of the source file
STRING_DGER = String to be searched
FILE_DATE = Year

这不起作用,您正在写源文件

def find_word_in_file_dger(FILENAME_NEWAVE, STRING_DGER, FILE_DATE):
   f = open(FILENAME_NEWAVE, "r+")
   file_array = f.readlines()
   for i in file_array:
       if i.find(STRING_DGER.encode('utf-8')):
           f.write(i)
       else:
           print ("TO LENDO O ARRAY")
           if FILE_DATE == "2016":
               continue
           else:
               i.replace(STRING_DGER, "ANO INICIO DO ESTUDO " + FILE_DATE)
               f.write(i)
               print("TO ESCREVENDO A LINHA CORRETAMENTE MLK!! ")
           return i
   f.close()
   return False

1 个答案:

答案 0 :(得分:0)

我很确定这会奏效。关于UnicodeDecodeError,建议您查看this

import re
cache = None
with open("file.txt", "r") as f:
     cache = f.read()
new_file = re.sub("2017", "2018", cache) 
new_file = re.sub("2016", "2017", new_file)
if new_file: 
    with open("newfile.txt", "w") as f: 
        f.write(new_file)