我一直在查看Python 3 中文件管理的教程,但它没有提到如果文件不存在如何创建文件。我怎样才能做到这一点?
问问题
4913 次
5 回答
4
只是模式open
中的文件w
,它将被创建。
如果您想尽可能打开现有文件,但要创建一个新文件(并且不想截断现有文件),请阅读链接中列出模式的段落。或者,有关完整的详细信息,请参阅open
参考文档。例如,如果您想追加到末尾而不是从头开始覆盖,请使用a
.
于 2013-04-05T00:07:49.197 回答
2
新文件仅在写入或追加模式下创建。
open('file', 'w')
在外壳中:
$ ls
$ python -c 'open("file", "w")'
$ ls
file
$
于 2013-04-05T00:08:17.200 回答
2
当然。
with open('newfile.txt', 'w') as f:
f.write('Text in a new file!')
于 2013-04-05T00:08:22.650 回答
2
只需以写入模式打开文件:
f = open('fileToWrite.txt', 'w')
请注意,这将破坏现有文件。最安全的方法是使用附加模式:
f = open('fileToWrite.txt', 'a')
如this answer中所述,通常最好使用with
语句来确保文件在完成后关闭。
于 2013-04-05T00:08:44.030 回答
1
您可以制作两种类型的文件。一个文本和一个二进制文件。制作一个文本文件只需使用file = open('(file name and location goes here).txt', 'w')
. 首先制作一个二进制文件import pickle
,然后将数据(如列表数字等)放入其中,您需要使用'wb'并pickle.dump(data, file_variable)
取出,您需要使用'rb'pickle.load(file_variable)
并给它一个变量,因为是您引用数据的方式。这是一个例子:
import pickle #bring in pickle
shoplistfile = 'shoplist.data'
shoplist = ['apple', 'peach', 'carrot', 'spice'] #create data
f = open(shoplistfile, 'wb') # the 'wb'
pickle.dump(shoplist, f) #put data in
f.close
del shoplist #delete data
f = open(shoplistfile, 'rb') #open data remember 'rb'
storedlist = pickle.load(f)
print (storedlist) #output
请注意,如果存在这样的文件,它将被覆盖。
于 2013-04-05T03:05:56.313 回答