我正在编写一个程序,允许您写入文件然后查看它。我的程序只有在我先添加文本然后再查看时才有效。另一方面,当我读取文件然后再次尝试写入
时我会在此行file.write(addtext + "\n")
上出现此错误:
io.UnsupportedOperation: not writable
这是我的代码:
file = open("notebook.txt","r")
file = open("notebook.txt","w")
while True:
print("(1) Read the notebook \n(2) Add note \n(3) Empty the notebook \n(4) Quit")
selection = int(input("Please select one:"))
if selection == 1:
file = open("notebook.txt","r")
content = file.read()
print(content)
elif selection == 2:
addtext = input("Write a new note:")
file.write(addtext + "\n")
我试图在阅读过程之后添加file.close或替换这行代码file = open("notebook.txt","r")
,但它们都不起作用。
答案 0 :(得分:0)
我认为 notebook.txt 存在。否则在使用此代码之前创建它(或修改此代码以管理此文件不存在的情况)。
首先不能同时写入和读取文件。首先,您阅读并在撰写之后,使用with范例在使用后自动关闭文件并提示打开文件太多操作系统错误(如果您忘记在{{1}之后关闭文件例如)
执行:
add_filter( 'woocommerce_order_number', 'change_woocommerce_order_number', 1, 2);
function change_woocommerce_order_number( $order_id, $order ) {
$prefix = '#SAM-';
$suffix = '-' . date(Y);
// You can use either one of $order->id (or) $order_id
// Both will work
return $prefix . $order->id . $suffix;
}
答案 1 :(得分:0)
我不确定你的要求,但我对你的代码感到惊讶,我尽力看看我能做些什么。
首先我导入了 os 模块,以检查启动时是否存在txt文件。如果确实如此,那么我打开它进行阅读。如果没有,那么打开它进行写作。
对于 while 循环,第一个 if 语句打开txt文件进行读取,然后文件中的行存储在内容通过 readlines()功能。然后我使用 for 循环打印内容中的每一行。
第二个 if 语句打开要追加的文件,我使用 writelines()函数来编写用户的输入。
这是我的代码添加到你的代码:
import os
if os.path.isfile("notebook.txt"):
f = open("notebook.txt", "r+")
f.close()
else:
f = open("notebook.txt", "w")
f.close()
while True:
print("(1) Read the notebook \n(2) Add note \n(3) Empty the notebook \n(4) Quit")
selection = int(input("Please select one:"))
if selection == 1:
f = open("notebook.txt", "r+")
content = f.readlines()
for line in content:
print(line)
f.close()
elif selection == 2:
addtext = input("Write a new note:")
f = open("notebook.txt", "a")
f.writelines(addtext + "\n")
f.close()
elif selection == 3:
f = open("notebook.txt", "w")
with f as filename:
filename.write("")
print("Notebook emptied.")
elif selection == 4:
break
如果您有任何疑问,请与我联系。
答案 2 :(得分:-1)
尝试替换
file = open("notebook.txt", "r")
与
file = open("notebook.txt", "rw")
您可能必须在重新打开文件之前关闭该文件。