gpt4 book ai didi

python os.system 似乎无缘无故挂起

转载 作者:行者123 更新时间:2023-12-01 05:45:58 24 4
gpt4 key购买 nike

所以我正在监视大量文件的修改时间。更新文件后,我通过 ssh 将其复制到另一台计算机。这是我所拥有的 SSCCE:

import os
import time

send = "/home/pi/PythonScripts/tempData.txt"
check = "/home/pi/PythonScripts/check.txt"

statbuf = os.stat(send)
print "Modification time:",statbuf.st_mtime

def wr2(data):
file2 = open(check, 'w')
file2.write(str(data))
file2.close()
return 0

def rd():
file = open(send, 'r')
line2 = file.readline()
file.close()
return line2

def rd2():
file2 = open(check, 'r')
line2 = file2.readline()
file2.close()
return line2


while(run):
try:
statbuf = os.stat(send)
line2 = rd2()
print line2

if (str(statbuf.st_mtime) == line2):
print "File has not changed...\n"
time.sleep(1)
else:
data = rd()
print "Data in File: " + data
os.system("sudo scp /home/pix/PythonScripts/tempData.txt server1:/home/tix/Server1_SSH/Real_Data.txt")
wr2(statbuf.st_mtime)
print "New Modification Time:",statbuf.st_mtime
time.sleep(1)



except (KeyboardInterrupt, SystemExit):
print '\nKeyboard Interrupt Caught!'
run = 0
raise

所以当到达 os.system() 时命令它卡在那里没有做任何事情...但是当我在 python 解释器上运行相同的代码时它工作得很好。我似乎无法理解问题是什么...任何帮助都会很棒!

最佳答案

sudo 可能是罪魁祸首,并且可能要求输入密码。

尝试使用 subprocess module 而不是 os.system反而。这将让您看到 stdoutstderr 流以了解发生了什么。

此外,我对在脚本中使用sudo 的做法提出质疑。通常,使用 sudo 的决定将留给调用 Python 脚本的人。

关于python os.system 似乎无缘无故挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16126817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com