鱼C论坛

 找回密码
 立即注册
查看: 41|回复: 6

[已解决]打开文件

[复制链接]
发表于 昨天 18:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
不能创建文件是什么问题,我不清楚如何看路径

s = "hello,world"
f = open("data/data.txt","w")
f.write(s)
f.close()
最佳答案
昨天 21:44
        试试这个代码:
  1. s = "hello,world"
  2. f = open("data.txt","w")
  3. f.write(s)
  4. f.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 18:02 | 显示全部楼层
在Python中创建文件时遇到问题,通常有以下几种原因及解决方案:

### 常见问题原因:
1. 目录不存在:代码中指定的路径 `data/data.txt` 要求当前目录下存在 `data` 文件夹,否则会报错。
2. 权限不足:当前用户没有在目标路径写文件的权限。
3. 路径错误:相对路径的起始位置(工作目录)可能和预期不符。

### 解决方案:
步骤1:检查并创建目录(推荐)
修改代码,确保目录存在:

  1. import os

  2. s = "hello,world"
  3. path = "data/data.txt"

  4. # 创建父目录(如果不存在)
  5. os.makedirs(os.path.dirname(path), exist_ok=True)  # exist_ok=True 避免目录已存在时报错

  6. f = open(path, "w")
  7. f.write(s)
  8. f.close()
复制代码


步骤2:检查当前工作目录
在代码开头添加以下语句查看当前路径:

  1. import os
  2. print("当前工作目录:", os.getcwd())  # 输出程序运行时的工作目录
复制代码

运行后根据输出调整路径(如发现路径不对,可用绝对路径替代)。

步骤3:使用绝对路径(如果目录结构复杂)
例如在Windows系统:

  1. f = open(r"C:\YourProject\data\data.txt", "w")  # 替换为你的实际路径
复制代码

或在Linux/macOS:

  1. f = open("/home/yourname/project/data/data.txt", "w")
复制代码


### 其他建议:
1. 用 with 语句自动关闭文件:

  1. with open("data/data.txt", "w") as f:
  2.     f.write(s)
复制代码

2. 检查文件是否被其他程序占用(如已手动打开该文件)。

### 快速测试方法:
临时改为当前目录下的简单路径测试写入权限:

  1. with open("test.txt", "w") as f:  # 尝试在当前目录直接创建
  2.     f.write("test")
复制代码

如果成功,说明原路径的目录结构有问题。

> 提示:路径中的 data/data.txt 表示需要先存在 data 文件夹,程序不会自动创建多层目录(除非使用 os.makedirs)。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 18:11 | 显示全部楼层
f = open("data/data.txt","w")

这一句,需要你在当前脚本所在的文件夹中,拥有一个叫做 data 的文件夹。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 20:13 | 显示全部楼层
小甲鱼的二师兄 发表于 2025-7-5 18:11
f = open("data/data.txt","w")

这一句,需要你在当前脚本所在的文件夹中,拥有一个叫做 data 的文件夹 ...

w 模式,不是“文件不存在则创建”吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 21:44 | 显示全部楼层    本楼为最佳答案   
        试试这个代码:
  1. s = "hello,world"
  2. f = open("data.txt","w")
  3. f.write(s)
  4. f.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 23:28 | 显示全部楼层
jackz007 发表于 2025-7-5 21:44
试试这个代码:

s = "hello,world"
f = open("data\data.txt","w")
f.write(s)
f.close()
这个也可以
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 3 小时前 | 显示全部楼层
pelya 发表于 2025-7-5 20:13
w 模式,不是“文件不存在则创建”吗?

不行,它是文件不存在则创建,但不会自动创建文件夹。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-6 05:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表