我仍然是python的新手,我已经尝试过这种方式覆盖txt文件上的一行
'''
答案 =输入(“俄/秒/升/米:”)
if answer == "R":
print ("Racer")
f=open('character.txt', 'w+')
with open("character.txt") as file_in:
lines = [1]
for line in file_in:
lines.append(line)
amount=int(input("please enter the amount"))
f.write(answer )
f.write("" + "-" + str(amount) + '\n\n')
f.write("" + '\n')
f.close()
elif answer == "S":
print ("Sage")
f=open('character.txt', 'w+')
with open("character.txt") as file_in:
lines = [3]
for line in file_in:
lines.append(line)
amount=int(input("please enter the amount"))
f.write(answer )
f.write("" + "-" + str(amount) + '\n\n')
f.write("" + '\n')
f.close()
'''
它会替换txt文件上的所有文本行,无论我想做什么,当我选择R时,它会写入txt文件的第一行,当我选择S时,它会写入txt文件的第三行
我现在已经尝试过了
'''
if answer == "R":
print ("Racer")
f=open('character.txt', 'w+')
with open("character.txt", "r+") as myfile:
data = myfile.read()
myfile.seek(0)
amount=int(input("please enter the amount"))
newData1=(answer + "" + "-" + str(amount) + '\n\n')
myfile.write(newData1)
myfile.truncate()
f.close()
elif answer == "S":
print ("Sage")
f=open('character.txt', 'w+')
with open("character.txt", "r+") as myfile:
data = myfile.read(4)
myfile.seek(4)
amount=int(input("please enter the amount"))
newData2=(answer + "" + "-" + str(amount) + '\n\n')
myfile.write(newData)
myfile.truncate(4)
f.close()
'''
有人能告诉我正确的方向吗
您的第一种方法已经接近解决方案,但是您没有选择第一行或第三行,您只是创建了一个包含1的列表(< code>lines = [1])。您首先需要打开文件。然后,您可以使用< code>file.readlines返回一个列表,其中每一行都作为一个单独的字符串,而不是使用< code>file.read返回整个文件作为一个字符串。然后,给一个特定的行赋一个新值,再次打开同一个文件,但现在是在写模式下,使用< code>file.writelines将行列表写回文件,就这样!
if answer == "R":
print("Racer")
with open("character.txt", "r") as f: # with automatically closes the file - no need to do so yourself
lines = f.readlines()
amount = input("please enter the amount") # no need to convert the amount to int first if you then convert it back to string below
lines[0] = answer + "-" + amount
with open("character.txt", "w") as f:
f.writelines(lines)
我会让你自己修改其他答案的代码。请注意,如果你把上面的内容放在一个函数中,接受一个数字(你要覆盖的行)和一个字符串(答案),你可以保存很多行代码。
你肯定想知道为什么我在代码中添加了行[0]=…
。嗯,我们从1开始计数,但Python从0开始计数!你称之为第一行,对Python来说是0st,你称之为第二行,对Python来说是1st。依此类推。
下面是第二种方法的一些说明:file.seek
查找文件中由您传递给它的数字指定的字节,而不是行。file.truncate
调整文件大小。它不会覆盖文件。
问题内容: 我编写的代码应该覆盖所选文本文件的内容,但是会附加它。我到底在做什么错? 编辑 我尝试制作一个新的temp.txt文件并将新内容写入其中,删除此文本文件并将temp.txt重命名为该文件。事实是,删除总是不成功的。我认为我不必为此更改用户权限吗? 另外,程序的一部分列出了该目录中的所有文件,因此我猜它们正在被程序使用,因此无法删除。但是为什么不覆盖呢? 解决了 我最大的“ D’oh”时
我正在Java写一个程序来更新文本文档上的数据。更新由按钮(JButton)触发。 特别是,我需要区分文档中的3行: 第一个描述了一个名为“total”的浮点值 第二个描述了一个名为“fail”的浮点值 第三个描述了一个称为“rate”的双值 在程序执行期间,我希望读取文档的3行并将其分配给变量;按下按钮后,相应的变量必须覆盖文档中的值。 为了实现这一点,我的理由如下: 我声明了3个私有变量(总数
我正在从文本文件中读取预订系统的座位数据,并将其写入ArrayList中。一个行将被放入一个可变的fileline中。文件行是从每个“,”中拆分出来的,并放入名为Components的数组中。然后将组件放入对象中。 txt文件示例 然后进入一个if语句,检查座位是否合适,如果合适,我想将false更改为true,并将乘客名添加为null,但只在合适的座位上。我想知道是否有任何方法可以覆盖文本文件中
问题内容: with open(“games.txt”, “w”) as text_file: print(driver.current_url) text_file.write(driver.current_url + “\n”) 我现在正在使用此代码,但是当它写入文件时,它将覆盖旧内容。我如何能简单地添加它而不删除已经存在的内容。 问题答案: 而不是使用(附加)功能模式:
问题内容: 我正在使用Python csv模块读取csv文件,每一行都像这样: 然后,我将row [0]转换为Unix时间,但是我想用刚为csv文件的每一行找到的Unix时间替换datetime 因此,我使用unixtime值创建了列表Y,但是接下来我该如何进行替换,以产生如下所示的输出: 问题答案: 每个只是一个。您可以就地对其进行修改,也可以使用要替换的值创建一个新列表: 如果要将其写回文件,
问题内容: 覆盖文件中特定行的最佳方法是什么?我基本上想在文件中搜索字符串’@parsethis’,然后用其他东西覆盖该行的其余部分。 问题答案: 如果文件不是太大,最好的方法可能是使用file()将文件读入行数组,在行数组中搜索您的字符串并编辑该行,然后将implode()返回一起将其fwrite()返回文件。