如何在Ubuntu服务器上使用Python打开文件进行读写?
我想做的是编辑一个叫做 etc/samba/smb.conf 的文件,并且我想添加以下内容:
[Test's Files]
comment = Test's Files
path = /files/test
browsable = yes
read only = no
valid users = test
我希望通过一个Python的网页应用来完成这一切,这个应用会接收用户输入的信息。现在我只想知道,怎么用Python把这段文字添加到这个文件里。
3 个回答
0
你可以用这种简单的方法来实现:
with open('/etc/whatever.txt', 'a+') as file:
file.write("""[Test's Files]
comment = Test's Files
path = /files/test
browsable = yes
read only = no
valid users = test""")
但是如果你想编辑只有超级用户(root)才能写的文件,你需要注意权限问题。请注意你打开文件的模式!这个必须是'a+',而绝对不能是'w',就像其他答案中所示的那样!否则你会把文件的内容覆盖掉!
0
你可以看看Python中的SMBCOnnection模块。http://pythonhosted.org/pysmb/api/smb_SMBConnection.html
我之前用过这个模块,它非常适合与smb服务器进行交互。
使用下面的代码可以打开一个文件并写入内容:
with open('文件路径', 'w') as fileobj: fileobj.write('要写入的文本')
上面的代码非常方便,可以轻松打开、写入和关闭文件,它会自动完成打开和关闭的操作。
1
你可以使用 open()
这个函数来打开一个文件:
with open('path/to/file', 'w') as output_file:
output_file.write('content')
在使用 open 命令时,第二个参数是模式,具体的内容可以在 Python 的文档网站 上找到。顺便提一下,如果这个文件在 /etc/ 目录下,你的应用可能需要特别的权限才能写入这个文件。为了减少使用高权限带来的风险,你应该创建一个子进程,这个子进程只负责写入这个文件,而你的主进程则保持正常权限。