【发布时间】:2021-07-20 02:49:19
【问题描述】:
我想创建一种方法来创建具有特定扩展名的文件。示例:我想创建test 并为其添加扩展名.txt 并将新文件放入/home/administrator。
import os
import shutil
import datetime
import glob
import time
class Item:
def __init__(self, nom, path, date):
self.nom = nom
self.path = path
self.date = date
class Dossier:
def AjouterExtension(self, nom, extension):
"""classe qui va ajouter une extension a un fichier"""
path = "/home/administrator"
if not os.path.exists(path):
os.makedirs(path)
filename = nom + extension
with open(os.path.join(path, filename), 'wb') as temp_file:
temp_file.write()
mon_doc = Dossier()
mon_doc.AjouterExtension("test", "txt")
错误:
Traceback (most recent call last):
File "/home/administrator/PycharmProjects/pythonProject6/main.py", line 40, in <module>
mon_doc.AjouterExtension("test2", "txt")
File "/home/administrator/PycharmProjects/pythonProject6/main.py", line 33, in AjouterExtension
filename = '.'.join(nom, extension)
TypeError: join() takes exactly one argument (2 given)
您对我的代码的解决方案更新:
import os
import shutil
import datetime
import glob
import time
class Item:
def __init__(self, nom, path, date):
self.nom = nom
self.path = path
self.date = date
class Dossier:
def AjouterExtension(self, nom, extension):
"""classe qui va ajouter une extension a un fichier"""
path = "/home/administrator"
if not os.path.exists(path):
os.makedirs(path)
filename = '.'.join(nom, extension)
name = "{}.{}".format(filename, extension.lstrip("."))
with open(path, "w") as fh:
pass # or work with fh to add some content
mon_doc = Dossier()
mon_doc.AjouterExtension("test2", "txt")
【问题讨论】:
-
这看起来不错 - 它应该做的不是什么?
-
/home/administrator/PycharmProjects/pythonProject6/venv/bin/python /home/administrator/PycharmProjects/pythonProject6/main.py Traceback(最近一次调用最后):文件“/home/administrator/PycharmProjects /pythonProject6/main.py",第 38 行,在
mon_doc.AjouterExtension("test", "txt") 文件中 "/home/administrator/PycharmProjects/pythonProject6/main.py",第 35 行,在 AjouterExtension temp_file 中。 write() TypeError: write() 只接受一个参数(给定 0)进程以退出代码 1 结束 -
您需要在名称和扩展名之间添加一个点。你打算写什么到文件中?正如错误所说,你现在没有写任何东西。
filename = f"{nom}.{extension}"或filename = '.'.join(nom,extension) -
您可以使用
pass来执行“什么都不做”操作而不是.write(),这将创建一个空文件(只需打开和关闭文件,根据warg 创建它打开) -
或者你可以只写一个空字符串:
temp_file.write('')