16 个答案:

答案 0 :(得分:712)

您应该open使用w+模式:

file = open('myfile.dat', 'w+')

答案 1 :(得分:112)

以下方法的优点是,即使在路上引发异常,文件在块结尾处正确关闭。它相当于try-finally,但更短。

with open("file.dat","a+") as f:

f.write(...)

...

a +打开附加和读取的文件。文件指针是

如果文件存在,则在文件末尾。该文件打开

追加模式。如果该文件不存在,则为其创建新文件

读写。 - Python file modes

f.seek(pos [, (0|1|2)])

pos .. position of the r/w pointer

[] .. optionally

() .. one of ->

0 .. absolute position

1 .. relative position to current

2 .. relative position from end

只允许使用“rwab +”字符;必须有一个“rwa” - 请参阅Stack Overflow问题

答案 2 :(得分:32)

良好做法是使用以下内容:

import os

writepath = 'some/path/to/file.txt'

mode = 'a' if os.path.exists(writepath) else 'w'

with open(writepath, mode) as f:

f.write('Hello, world!\n')

答案 3 :(得分:31)

>>> import os

>>> if os.path.exists("myfile.dat"):

... f = file("myfile.dat", "r+")

... else:

... f = file("myfile.dat", "w")

r +表示读/写

答案 4 :(得分:26)

将“rw”改为“w +”

或使用'a +'附加(不删除现有内容)

答案 5 :(得分:14)

我的回答:

file_path = 'myfile.dat'

try:

fp = open(file_path)

except IOError:

# If not exists, create the file

fp = open(file_path, 'w+')

答案 6 :(得分:7)

从python 3.4起,你应该使用pathlib来“触摸”文件

它比这个帖子中提出的解决方案更优雅。

from pathlib import Path

filename = Path('myfile.txt')

filename.touch(exist_ok=True) # will create file, if it exists will do nothing

file = open(filename)

与目录相同:

filename.mkdir(parents=True, exist_ok=True)

答案 7 :(得分:7)

open('myfile.dat', 'a')对我有用,很好。

在py3k中,您的代码会引发ValueError:

>>> open('myfile.dat', 'rw')

Traceback (most recent call last):

File "", line 1, in

open('myfile.dat', 'rw')

ValueError: must have exactly one of read/write/append mode

在python-2.6中它引发了IOError。

答案 8 :(得分:6)

我认为它是r +,而不是rw。我只是一个初学者,这就是我在文档中看到的。

答案 9 :(得分:6)

你想用文件做什么?只写它或者同时读写?

'w','a'将允许写入,如果文件不存在,将创建该文件。

如果您需要从文件中读取,则必须在打开文件之前存在该文件。您可以在打开它之前测试它的存在或使用try / except。

答案 10 :(得分:5)

将w +写入文件,截断(如果存在),r +读取文件,创建一个如果不存在但不写入(并返回null)或+ +用于创建新文件或附加到文件现有的。

答案 11 :(得分:5)

'''

w write mode

r read mode

a append mode

w+ create file if it doesn't exist and open it in write mode

r+ open for reading and writing. Does not create file.

a+ create file if it doesn't exist and open it in append mode

'''

示例:

file_name = 'my_file.txt'

f = open(file_name, 'w+') # open file in write mode

f.write('python rules')

f.close()

我希望这会有所帮助。 [仅供参考使用python版本3.6.2]

答案 12 :(得分:4)

如果你想打开它进行读写,我假设你不想在打开它时截断它,你希望能够在打开文件后立即读取它。所以这就是我正在使用的解决方案:

file = open('myfile.dat', 'a+')

file.seek(0, 0)

答案 13 :(得分:4)

使用:

import os

f_loc = r"C:\Users\Russell\Desktop\ip_addr.txt"

if not os.path.exists(f_loc):

open(f_loc, 'w').close()

with open(f_loc) as f:

#Do stuff

确保在打开文件后关闭文件。 with上下文管理器会为您执行此操作。

答案 14 :(得分:1)

import os, platform

os.chdir('c:\\Users\\MS\\Desktop')

try :

file = open("Learn Python.txt","a")

print('this file is exist')

except:

print('this file is not exist')

file.write('\n''Hello Ashok')

fhead = open('Learn Python.txt')

for line in fhead:

words = line.split()

print(words)

答案 15 :(得分:0)

所以你想把数据写入文件,但只有它还不存在?

通过使用鲜为人知的x模式来打开()而不是通常的w模式,可以轻松解决这个问题。例如:

>>> with open('somefile', 'wt') as f:

... f.write('Hello\n')

...

>>> with open('somefile', 'xt') as f:

... f.write('Hello\n')

...

Traceback (most recent call last):

File "", line 1, in

FileExistsError: [Errno 17] File exists: 'somefile'

>>>

如果文件是二进制模式,请使用模式xb而不是xt。

python怎么安装打开文件不存在怎么办呢_如果文件不存在,Python中的open()不会创建文件...相关推荐

  1. Java替换文件名字符串中的特殊字符,避免创建文件失败

    文章目录 1.文件名中不能有哪些字符? 2.创建文件时,如何进行判断? 3.如何替换文件名'字符串中的特殊字符? 4.(很重要的)补充: 1.文件名中不能有哪些字符? 在Windows系统创建文件,其 ...

  2. python自定义安装哪些不需要_python setup.py配置,用于在自定义目录中安装文件

    我想创建一个setup.py,将我的文件安装到自定义目录中.我有一个特定的前缀,在这里我想得到以下结果:/my/prefix/ bin/ script.sh libexec/ one.py two.p ...

  3. python文件都是脚本吗_脚本语言系列之Python | Python文件IO

    Python是做自动化工作首选的一门语言,与更复杂的语言相比,Python 非常便于快速学习.语法很少,具有良好的 可读性,即使测试工程师们没有丰富的编码经验,也能快速学会:Python 的极简风格对 ...

  4. python已安装这个产品的另一个版本_安装版本问题python,该问题已经解决,我发错了...

    博主一开始使用python2.7和Opencv2.4.10来获取摄像头图像,程序如下: cap = cv2.VideoCapture(0) ret, frame = cap.read() 使用这个程序 ...

  5. python编程写完需要几年驾龄_编程小白怎么学Python,大概要多久才能学好?

    我就是从零基础开始学的Python,也算是一个过来人了吧,现在看来当初我也是走了许多弯路,来给大家分享一下我的经验吧. 一.首先是最重要的一点,想清楚你为什么要去学Python? 你是想要做一个网站, ...

  6. ios 模拟器沙盒_举例详解iOS开发过程中的沙盒机制与文件

    iOS沙盒机制 iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 每 ...

  7. 如何批量在文件夹中建立php,怎么批量创建文件夹_一次性创建多个文件夹方法_一聚教程网...

    相信大家在平时的工作或是生活中,经常会遇到需要创建多个文件夹的问题,那么对于这种一次性创建多个文件夹的问题怎么解决呢?这里文章就给大家具体介绍下批量创建多个文件夹的问题,感兴趣的一起来了解下. 日常工 ...

  8. python语言在命名上是什么敏感的_一文轻松掌握python语言命名规范规则

    和C/C++.Java等语言一样,python在命名上也有一套约定俗成的规则,符合规范的命名可以让程序的可读性大大增加,从而使得代码的逻辑性增强,易于自己和其他协作者在以后的拓展中理解代码的意义,从而 ...

  9. python写文件追加 按行追加_你真的会用python进行文件操作吗

    本篇文章主要比较系统的介绍了python中文件操作,以及在在使用中需要注意的问题. 什么是文件 文件是系统存储区域的一个命名位置,用来存储一些信息,便于后续访问.能够在非易失性存储器中实现持续性存储, ...

最新文章

  1. java 缘起_缘起 网络编程
  2. latex基础(文字,图,表)
  3. [云炬创业管理笔记]第二章成为创业者讨论2
  4. JavaScript高级程序设计20.pdf
  5. java 日期处理 口诀_java时间处理常用方法工具类
  6. oracle 老白,老白学编程 - Netdata学习 - numa
  7. 项目启动及需求分析(靳嘉豪、胡新宇、李晨曦、杨航、李瑶)团队作业
  8. Keras报错:`Dense` can accept only 1 positional arguments ('units',), but you passed the followin.....
  9. Python单例模式的4种实现方法(转)
  10. python selenium canvas_selenium webdriver 实现Canvas画布自动化测试
  11. oracle用游标,Oracle游标使用全解
  12. PyQt5和Python的多线程
  13. mysql +cobar_MySQL 中间件 cobar 初体验
  14. 如何提高程序员的工作效率 这几招就够了
  15. 纯CSS教你实现磨砂玻璃背景效果(附代码)
  16. C/C++实现文件加密器
  17. 弘辽科技:“拼夕夕”华丽变装为“拼爹爹”的成功秘诀
  18. MYSQL全文检索 MATCH AGAINST 转为 SQLalchemy
  19. 中小学数学卷子自动生成程序-----队友项目评价
  20. B. Knights

热门文章

  1. ValueError: operands could not be broadcast together with shapes解决
  2. python opencv 视频剪辑
  3. Corrupt JPEG data: 2 extraneous bytes before marker 0x
  4. module 'thread' has no attribute
  5. OpenCV学习之六: 使用方向梯度直方图估计图像旋转角度
  6. MySQL从入门到搞定实战
  7. 根据title 关闭cmd 窗口_2种Win7关闭休眠功能方法
  8. mybatis中like模糊查询的几种写法及注意点
  9. react http请求_通过Webpack全局配置开发环境和多种生产环境的请求地址
  10. 如何查看夜神模拟器的端口