gpt4 book ai didi

python - open() 的 I/O 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:28:37 25 4
gpt4 key购买 nike

class NewTab():
def __init__(self, song_title, artist_name):
self.song_title = song_title
self.artist_name = artist_name
name1 = self.artist_name + "_" + self.song_title
name2 = name1.replace(" ", "")
new_file = open("~/Documents/"+name2+".txt", "a+")

tab = NewTab(raw_input("Song Title: "), raw_input("Artist Name: "))

我正在尝试创建一个新文件(假设它尚不存在),其名称是根据用户输入的两个字符串生成的。例如:

"Song Title: "  >> Personal Jesus
"Artist Name: " >> Depeche Mode

应该导致创建:~/Documents/DepecheMode_PersonalJesus.txt


不幸的是,我总是留下:

IOError: [Errno 2] No such file or director: '~/Documents/DepecheMode_PersonalJesus.txt'

我尝试了不同的 open() 模式,例如 "w""w+""r+" 都无济于事。我还尝试将 name1name2new_file 放入 __init__ 之外的方法中,如下所示:

    def create_new(self):
name1 = self.artist_name + "_" + self.song_title
name2 = name1.replace(" ", "")
new_file = open("~/Documents/"+name2+".txt", "a+")

tab.create_new()

但这会导致完全相同的错误。

我已将我的 /Documents 文件夹权限(所有者、组、其他)设置为创建和删除文件

除此之外,我完全不知道为什么我不能创建这个文件。它显然按照我想要的方式构建了文件名和目录,那么它为什么不继续创建文件呢?

最佳答案

使用 os.path.expanduser() 函数获取带有“~”解析的完整有效路径并将其传递给 open()

    new_file = open(os.path.expanduser("~/Documents/")+name2+".txt", "a+")

这会将“~”解析为/home/user 之类的内容,并将其与其余路径元素合并。

关于python - open() 的 I/O 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25613053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com