如何将特定字符放置在文件中的特定位置?

时间:2019-06-13 01:46:45

标签: python

我希望能够使用python代码在文件中添加特定字符。

我尝试使用读取函数,即含义列表,但这些函数出现错误“ TypeError: 'builtin_function_or_method

我相信这意味着python无法使用列表函数将字符写入特定位置

错误方式:

文件:1)5

代码:

while true:
  with open ('file','w') as f:
    f.writeline[0]=+1
  with open ('file','r') as f:
    fc = f.read()
    print (fc)

预期输出: 5,6,7,8,9,10,11,12,13,14,15....

我以为这行代码将增加5行,直到我停止程序为止,但是它发送了先前描述的错误代码。有没有办法编写代码以使其按预期方式执行?

2 个答案:

答案 0 :(得分:0)

首先,您的代码将具有无限循环:

while True:您是否有任何检查变量?

第二,我认为这不能为您工作:f.writeline[0]=+1

我不确定我的推荐代码是否可以帮助您解决问题,但是如果与您的想法不符,请对其进行评论。

check = True
# file = '1)5'
add_val = 5
while check:
    open('file', 'w').write(add_val + ",")
    add_val += 1
    if add_val > 20: # condition to break the while loop
        check = False
f = open('file','r').read()
print (f)

答案 1 :(得分:0)

基本上,您需要构建一个函数来更新单个字符。我认为这可以解决问题,但是我实际上只花了三分钟就写完了,所以请注意...

def write_at_index(filename,y_pos,x_pos,character):
    """Write a character 'character' at the given index"""
    lines = 0 //begin lines outside scope of the with statement.
    with open(filename,"r") as file:
        lines = file.readlines()
        if len(lines)<y_pos:
            raise Exception('y pos out of bounds')
        if len(lines[y_pos]) < x_pos
            raise Exception('x_pos out of bounds')
        lines[y_pos][x_pos] = character
    with open(filename,"w") as file:
        file.writelines(lines)