输入文件名-创建文件-写入内容(Python)

本文介绍了一个简单的Python程序,用于创建并写入文本文件。程序首先提示用户输入文件名,检查该文件是否已存在,若不存在则继续接收用户输入的内容直至指定结束符出现,并将这些内容保存到文件中。

1.输入文件名

2.如果当前路径不存在该文件,则创建这个文件。

3.接收输入内容。直到输入点号.

4.保存文件。


import os
def makeTextFile():
    fname=input("输入文件名:")
    ls=os.linesep
    while True:
        if os.path.exists(fname):
            print("ERROR:'%s' already exists"%fname)
        else:
            break
    all=[]
    print("\nEnter lines('.' by itself to quit).\n")
    while True:
        entry=input('>')
        if entry=='.':
            break
        else:
            all.append(entry)
    fobj=open(fname,'w')
    fobj.writelines(['%s%s' %(x,ls) for x in all])
    fobj.close()
    print('DONE')

运行结果:

>>> makeTextFile()
输入文件名:Hell.txt

Enter lines('.' by itself to quit).

>你好呀
>你好
>细细
>.
DONE
>>> 


### 如何使用 Python 创建文件写入内容 以下是通过多种方式实现创建文件写入内容的示例代码: #### 方法一:使用 `open` 函数和 `with` 语句 这是最常见的方式之一,利用上下文管理器 (`with`) 自动处理文件关闭。 ```python # 定义文件名和要写入内容 filename = 'example.txt' content = 'Hello, this is a test file.\nWelcome to Python file handling!' # 打开文件(如果不存在则会自动创建),以写入模式 ('w') with open(filename, 'w', encoding='utf-8') as file: # 将内容写入文件 file.write(content) print(f'Content written to {filename} successfully.') ``` 这种方法的优点在于它能够确保即使发生异常也能正确关闭文件资源[^1]。 --- #### 方法二:基于自定义类封装文件操作逻辑 这种方式更加面向对象化,适合复杂场景下的扩展需求。 ```python class FileHandler: @staticmethod def create_file(file_path: str): """创建一个新的文件""" with open(file_path, 'w', encoding='utf-8'): pass # 只需打开即可创建文件 @staticmethod def write_to_file(file_path: str, content: str): """向指定文件写入内容""" with open(file_path, 'a+', encoding='utf-8') as file: # 追加模式('a+')允许追加数据而不覆盖原有内容 file.write(content + '\n') # 实际应用案例 handler = FileHandler() file_name = './test_output.txt' FileHandler.create_file(file_name) # 创建文件 FileHandler.write_to_file(file_name, "First line of text") # 写入第一行 FileHandler.write_to_file(file_name, "Second line follows.") # 继续写入第二行 ``` 此方法提供了更高的灵活性以及可维护性,尤其适用于需要频繁执行相同类型的操作时[^2]。 --- #### 方法三:动态生成目录结构后再创建目标文件 当涉及到跨多个子目录存储文件的情况时,可能还需要先确认或构建相应的父级路径。 ```python import os # 设置新的文件夹及其内部的目标文件位置 folder_path = "./dynamic_folder" os.makedirs(folder_path, exist_ok=True) # 如果已存在,则不会报错;否则新建该层结构 target_filepath = f"{folder_path}/sample_data.txt" # 配置待保存的数据字符串形式表达 data_content = """ This demonstrates creating directories dynamically before writing files. It ensures all necessary parent folders are present prior attempting creation.""" # 开始记录过程 with open(target_filepath, "w", encoding="utf-8") as output_stream: bytes_written = output_stream.write(data_content.strip()) if isinstance(bytes_written, int): print(f"Wrote exactly {bytes_written} characters into '{target_filepath}'.") else: raise IOError("Unexpected issue occurred while trying to save data.") ``` 这段脚本不仅完成了基本的任务——即建立文档实体的同时填充初始信息,还兼顾到了实际开发过程中常见的额外考量因素,比如预先准备好必要的容器环境等[^3]。 --- #### 总结说明 无论采用哪种具体手段,在日常编程实践中都推荐尽可能遵循良好的习惯做法,例如始终优先考虑安全性和效率问题。此外值得注意的是,尽管这里展示的例子主要围绕纯文本类型的材料展开讨论,但对于其他格式如JSON、CSV或者二进制序列等等同样适用类似的原理和技术框架[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值