模仿windows的新建文本文档

chyanog 2012-07-31 11:53:02
即在某目录下创建txt文件,如果当前目录不存在文件名为“新建文本文档.txt”的文件
则创建“新建文本文档.txt”,否则创建“新建文本文档 (2).txt”,
其他情况请自己尝试,要求必须和windows的一致
尽量不用递归
...全文
369 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chyanog 2012-08-01
  • 打赏
  • 举报
回复

import os

def fun(fName,i):
if os.path.exists(fName):
if '(' in fName:
fName=fName.split('(')[0]+'('+str(i)+').txt'
else:
fName=fName.split('.')[0]+' ('+str(i)+').txt'
fun(fName,i+1)
else:
open(fName,'w').write('')

fun(u'新建文本文档.txt',2)

递归写法
chyanog 2012-08-01
  • 打赏
  • 举报
回复
这个不用递归不知道怎么解决呢
赵4老师 2012-08-01
  • 打赏
  • 举报
回复
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出
赵4老师 2012-07-31
  • 打赏
  • 举报
回复
system("dir /b /a-d c:\\新建文本文档*.txt >d:\\allfiles.txt");
//读文件d:\\allfiles.txt的内容即C:\\下所有“新建文本文档*.txt”文件的名字
请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。
baichi4141 2012-07-31
  • 打赏
  • 举报
回复
嗯,可以帮楼主尝试一下
把需要我们代为尝试的程序的下载链接发出来吧
赵4老师 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
引用 2 楼 的回复:

system("dir /b /a-d c:\\新建文本文档*.txt >d:\\allfiles.txt");
//读文件d:\\allfiles.txt的内容即C:\\下所有“新建文本文档*.txt”文件的名字
请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件……
shell命令涉及到的命令行工具不也是C写的吗,是他们考虑的更周全吗
[/Quote]
大概是因为用的人多,所以肯定考虑的比单独几个API对各种意外考虑的更周全.
chyanog 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

system("dir /b /a-d c:\\新建文本文档*.txt >d:\\allfiles.txt");
//读文件d:\\allfiles.txt的内容即C:\\下所有“新建文本文档*.txt”文件的名字
请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长……
[/Quote]
shell命令涉及到的命令行工具不也是C写的吗,是他们考虑的更周全吗
chyanog 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

嗯,可以帮楼主尝试一下
把需要我们代为尝试的程序的下载链接发出来吧
[/Quote]
http://115.com/file/anzc1lwh#
新建文本文档.exe

64,670

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧