python: 无法在最近更改的目录中找到文件 (OSx)
python: unable to find files in recently changed directory (OSx)
我正在自动执行一些繁琐的 shell 任务,主要是文件转换,以一种使用 os.system 调用 (Python 2.7) 的钝器方式。但是,由于某些奇怪的原因,我的 运行 解释器似乎无法找到我刚刚创建的文件。
示例代码:
import os, time, glob
# call a node script to template a word document
os.system('node wordcv.js')
# print the resulting document to pdf
os.system('launch -p gowdercv.docx')
# move to the directory that pdfwriter prints to
os.chdir('/users/shared/PDFwriter/pauliglot')
print glob.glob('*.pdf')
我希望得到一个长度为 1 的列表和生成的文件名,但我得到的是一个空列表。
也是如此
pdfs = [file for file in os.listdir('/users/shared/PDFwriter/pauliglot') if file.endswith(".pdf")]
print pdfs
我已经手动检查过,预期的文件实际上在它们应该在的位置。
此外,我的印象是 os.system 被阻止了,但为了以防万一,我还在查找文件之前在其中插入了 time.sleep(1)
。 (这足以让其他任务完成。)仍然没有。
嗯。帮助?谢谢!
您应该在调用 launch
之后添加等待。在文档打印完成之前,启动将在后台和 return 中生成任务。您可以输入一些任意的 sleep
语句,或者如果您愿意,如果您知道预期的文件名是什么,也可以检查文件是否存在。
import time
# print the resulting document to pdf
os.system('launch -p gowdercv.docx')
# give word about 30 seconds to finish printing the document
time.sleep(30)
选择:
import time
# print the resulting document to pdf
os.system('launch -p gowdercv.docx')
# wait for a maximum of 90 seconds
for x in xrange(0, 90):
time.sleep(1)
if os.path.exists('/path/to/expected/filename'):
break
参考可能需要超过 1 秒的等待 here
我正在自动执行一些繁琐的 shell 任务,主要是文件转换,以一种使用 os.system 调用 (Python 2.7) 的钝器方式。但是,由于某些奇怪的原因,我的 运行 解释器似乎无法找到我刚刚创建的文件。
示例代码:
import os, time, glob
# call a node script to template a word document
os.system('node wordcv.js')
# print the resulting document to pdf
os.system('launch -p gowdercv.docx')
# move to the directory that pdfwriter prints to
os.chdir('/users/shared/PDFwriter/pauliglot')
print glob.glob('*.pdf')
我希望得到一个长度为 1 的列表和生成的文件名,但我得到的是一个空列表。
也是如此pdfs = [file for file in os.listdir('/users/shared/PDFwriter/pauliglot') if file.endswith(".pdf")]
print pdfs
我已经手动检查过,预期的文件实际上在它们应该在的位置。
此外,我的印象是 os.system 被阻止了,但为了以防万一,我还在查找文件之前在其中插入了 time.sleep(1)
。 (这足以让其他任务完成。)仍然没有。
嗯。帮助?谢谢!
您应该在调用 launch
之后添加等待。在文档打印完成之前,启动将在后台和 return 中生成任务。您可以输入一些任意的 sleep
语句,或者如果您愿意,如果您知道预期的文件名是什么,也可以检查文件是否存在。
import time
# print the resulting document to pdf
os.system('launch -p gowdercv.docx')
# give word about 30 seconds to finish printing the document
time.sleep(30)
选择:
import time
# print the resulting document to pdf
os.system('launch -p gowdercv.docx')
# wait for a maximum of 90 seconds
for x in xrange(0, 90):
time.sleep(1)
if os.path.exists('/path/to/expected/filename'):
break
参考可能需要超过 1 秒的等待 here