繁体   English   中英

写入非“.txt”文件Python

[英]Writing to non “.txt” files Python

我正在用Python编写一个程序,你可以远程地从程序中写入一个文本文件。 相关守则:

namein = input("What do you want the filename to be? Don't include an extension...\n")
extin = input("What would you like the extension to be? This program supports:\nMicrosoft Word Document: '.docx'\nPlain Text File: '.txt'\nRich Text File: '.rtf'\nPages Document: '.pages'\n")
aw = input("Do you want to append your text file, or rewrite the whole thing? (append/write) ")
if aw == 'append':
    textin = input("In the line below, write the text you want to put into your text document!\n\n")
    outfile = open(namein + extin, 'a')
    outfile.write(textin)
    outfile.flush()
    print("Great! Now your text file has been updated!")
    print("Your text file:\n")
    outfile.close()
    outfile = open(namein + extin, 'r')
    print(outfile.read())

当有人选择非'.txt'文件时,无法打开文件! 它只是说错误,文件无法打开。 有没有解决的办法?

从您的代码看起来“textin”包含常规文本,也许您可​​以从键盘上读取。 您不能以这种方式创建Word文档:Word文档包含标题,字体信息等,因此您需要浏览每种文档的库。 例如,要编写Excel电子表格,您可以使用xlwt python模块。 对于Word文档,请参阅此SO问题 没有 RTF文件,一个Python库pyrtf

这是你在做什么或者我误解了你的简化代码?

PS。 不要启用任何允许陌生人在您的服务器上写文件的网络界面,比如说,一年。 有办法合理安全地做到这一点,但我相信你还没有为此做好准备。 (有关您将遇到的麻烦的提示,请参阅其他评论)。

你的代码是低音的。 你应该问他们想要保存文本的文件类型,并根据它设置扩展名。 他们不得不把点放进去也不好......

在此之后,您将通过rtf扩展名或doc保存直接文本。 DocX和pdf不起作用。 您需要创建该类型的文档,然后将文本添加为​​内容。

我想(但我只是猜测,因为我不太使用Windows)其他格式被视为二进制文件。 在这种情况下,您需要打开作为二进制文件:

outfile = open(namein + extin, 'ab')

但是,我猜可能会对附加到二进制文件有限制......? [显然不是 - 谢谢亚历克西斯]。 另外,正如每个人都指出的那样:如果它们是二进制文件,那么这不太可能有用。

更一般地说,我只想说,尽管你在这里读到了,但这就是我们所学的。 通过玩耍和做事,拧紧和学习不该做的事情。 我发现Niklas比你聪明,放下你的风格特别刺耳。 他可能不承认这一点,但即使他曾经写过愚蠢的小程序,而且 - 震惊 - 不知道所有的答案。 保持学习。 你的程序很酷。 如果它是完美的,你会学到什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM