Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的文件创建_Python_Python 3.x - Fatal编程技术网

Python中的文件创建

Python中的文件创建,python,python-3.x,Python,Python 3.x,我一直在回顾,但它没有提到如何创建一个文件,如果一个不存在。我该怎么做呢?只要以w模式打开文件,它就会被创建出来 如果您希望在可能的情况下打开现有文件,但在其他情况下创建新文件(并且不希望截断现有文件),请阅读链接中列出模式的段落。或者,有关完整的详细信息,请参阅参考文档。例如,如果要附加到末尾而不是从开头覆盖,请使用a仅在写入或附加模式下创建新文件 open('file', 'w') 在壳牌: $ ls $ python -c 'open("file", "w")' $ ls file $

我一直在回顾,但它没有提到如何创建一个文件,如果一个不存在。我该怎么做呢?

只要
w
模式打开文件,它就会被创建出来


如果您希望在可能的情况下打开现有文件,但在其他情况下创建新文件(并且不希望截断现有文件),请阅读链接中列出模式的段落。或者,有关完整的详细信息,请参阅参考文档。例如,如果要附加到末尾而不是从开头覆盖,请使用
a

仅在写入或附加模式下创建新文件

open('file', 'w')
在壳牌:

$ ls
$ python -c 'open("file", "w")'
$ ls
file
$
当然

   with open('newfile.txt', 'w') as f:
        f.write('Text in a new file!')

只需在写入模式下打开文件:

f = open('fileToWrite.txt', 'w')
请注意,这将删除现有文件。最安全的方法是使用附加模式:

f = open('fileToWrite.txt', 'a')

如中所述,通常最好使用
with
语句来确保文件在完成后关闭。

可以创建两种类型的文件。文本和二进制文件。 要创建文本文件,只需使用
file=open('(文件名和位置在这里).txt、'w')
。 要制作一个二进制文件,您首先要导入pickle,然后要在其中放入数据(如列表编号等),您需要使用“wb”和
pickle.dump(数据,文件变量)
来取出,您需要使用“rb”和
pickle.load(文件变量)
并给它一个变量,因为这就是您引用数据的方式。 举个例子:

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

请注意,如果存在这样一个文件,它将被重写。

您是否尝试使用“f=open('workfile','w')”并查看python是否自己创建了该文件?我知道在某些语言中这是一种正常的行为。对,但即使你使用with语句,你不需要做
f.close()
来关闭文件吗?@Nathan2055:这是
with
的全部要点,你不需要
f.close()
(或者,对于其他类型,
lock.release()
,等等),谢谢@jordanm的编辑。我通常做脚注链接,但我今天很忙。