gpt4 book ai didi

Python:试图将文件夹的内容放入文本文件中:

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:22:52 25 4
gpt4 key购买 nike

我正在编写一个 python 脚本,该脚本采用两个参数,允许我将文件夹的内容输出到一个文本文件,供我用于另一个进程。我的片段如下:

#!/usr/bin/python

import cv2
import numpy as np
import random
import sys
import os
import fileinput

#Variables:

img_path= str(sys.argv[1])
file_path = str(sys.argv[2])

print img_path
print file_path

cmd = 'find ' + img_path + '/*.png | sed -e "s/^/\"/g;s/$/\"/g" >' + file_path + '/desc.txt'

print "command: ", cmd

#Generate desc.txt file:
os.system(cmd)

当我尝试从我的命令行运行它时,我得到以下输出,但我不知道如何修复它。

sh: 1: s/$//g: not found

我通过在一个新的终端实例中运行以下命令来测试我正在使用的命令,它运行良好:

images/*.png | sed -e "s/^/\"/g;s/$/\"/g" > desc.txt

谁能看出为什么我的代码段不起作用?当我运行它时,我得到一个空文件...

提前致谢!

最佳答案

由于 python 处理和转义字符串内容的方式,它不会将正则表达式的全文发送到 bash,因此最好最快的解决方案是手动转义字符串中的反斜杠,因为 python 认为它们目前是转义码。所以改变这一行:

cmd = 'find ' + img_path + '/*.png | sed -e "s/^/\"/g;s/$/\"/g" >'  + file_path + '/desc.txt'

为此:

cmd = 'find ' + img_path + '/*.png | sed -e "s/^/\\"/g;s/$/\\"/g" >'  + file_path + '/desc.txt'

这应该适合您。

虽然,对你的问题的评论有一个很好的观点,你完全可以从 python 中做到这一点,比如:

import os
import sys

def main():
# variables
img_path= str(sys.argv[1])
file_path = str(sys.argv[2])

with open(file_path,'w') as f:
f.writelines(['{}\n'.format(line) for line in os.listdir(img_path) if line.endswith('*.png')])

if __name__ == "__main__":
main()

关于Python:试图将文件夹的内容放入文本文件中:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40273242/

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