我使用python从我的linux操作系统读取2个文件。其中一个包含单个条目/数字“日期”:
20111125
另一个文件包含许多条目“TIME”:
042844UTC 044601UTC ... 044601UTC
我能够读取文件来分配给适当的变量。我想然后使用变量来创建文件夹路径,移动文件等。。。例如:
$PATH/20111125/042844UTC $PATH/20111125/044601UTC $PATH/20111125/044601UTC
等等。在
在某种程度上,这对同时传递的多个变量不起作用:
import subprocess, sys, os, os.path
DATEFILE = open('/Astronomy/Sorted/2-Scratch/MAPninox-DATE.txt', "r")
TIMEFILE = open('/Astronomy/Sorted/2-Scratch/MAPninox-TIME.txt', "r")
for DATE in DATEFILE:
print DATE,
for TIME in TIMEFILE:
os.popen('mkdir -p /Astronomy/' + DATE + '/' TIME) # this line works for DATE only
os.popen('mkdir -p /Astronomy/20111126/' + TIME) # this line works for TIME only
subprocess.call(['mkdir', '-p', '/Astronomy/', DATE]), #THIS LINE DOESN'T WORK
谢谢!在
我在你的代码中看到几个错误。在
这是一个语法错误。我想你是想拥有}。我不明白你说的“这条线只适用于约会”是什么意思?在
^{pr2}$'/' + TIME
,而不是{你想叫什么命令?我从其余代码中猜出您正在尝试执行
mkdir -p /Astronomy/<<DATE>>
。但这不是你所编码的。传递给subprocess.call
的列表中的每一项都是一个单独的参数,因此您编写的内容将显示为mkdir -p /Astronomy <<DATE>>
。这将尝试创建两个目录,一个是根目录/Astronomy
,另一个是当前工作目录中名为DATE
的目录。在如果我对你想做的事情是正确的,那么正确的一行应该是:
在我看来,chown的答案是使用
os.makedirs
(并使用os.path.join
拼接路径,而不是字符串+)是一种更好的通用方法。但据我所知,这就是你当前的代码不能正常工作的原因。在我建议使用}或{}:
os.makedirs
(它的作用与mkdir -p
相同)而不是{然后将^{} 用于任何
cp
/mv
/etc操作。在从^{} Docs :
相关问题 更多 >
编程相关推荐