将字符串转换为文字目录
converting strings to literal directories
使用iPython,我试图遍历目录中的所有文本文件,对每个文本文件进行一些操作(在以"BEGIN"开头的行之后裁剪一部分文本文件) ,然后将结果存入另一个temp.txt。但是,当我执行 !cat file_path
时,它不会将 file_path
作为目录,而是将其解释为名为 'file_path'
的字符串。无论如何,我可以将字符串 file_path
转换为文字目录,它可以被 !cat
使用吗?
import os
for fn in os.listdir('./dir'):
if fn.endswith('.txt'):
file_path='./dir'+fn
print "file path is:", file_path
!cat file_path | sed -e '1,/BEGIN/d'>temp.txt
输出:
file path is: ~/Documents/dir/doc.txt
cat: file_path: No such file or directory
您必须将 file_path
括在大括号中以将其标记为 Python 表达式。尝试将此作为脚本的最后一行:
!cat {file_path} | sed -e '1,/BEGIN/d'>temp.txt
依我拙见,您忘记在 file_path 变量中添加“/”:
import os
for fn in os.listdir('./dir'):
if fn.endswith('.txt'):
file_path='./dir/'+fn
print file_path
顺便说一句,在这种情况下你可以使用 bash:
for i in `ls ./dir`; do if [[ $i == d*.txt ]]; then cat ./dir/$i | sed -e '1,/BEGIN/d'>temp.txt ; fi; done
使用iPython,我试图遍历目录中的所有文本文件,对每个文本文件进行一些操作(在以"BEGIN"开头的行之后裁剪一部分文本文件) ,然后将结果存入另一个temp.txt。但是,当我执行 !cat file_path
时,它不会将 file_path
作为目录,而是将其解释为名为 'file_path'
的字符串。无论如何,我可以将字符串 file_path
转换为文字目录,它可以被 !cat
使用吗?
import os
for fn in os.listdir('./dir'):
if fn.endswith('.txt'):
file_path='./dir'+fn
print "file path is:", file_path
!cat file_path | sed -e '1,/BEGIN/d'>temp.txt
输出:
file path is: ~/Documents/dir/doc.txt
cat: file_path: No such file or directory
您必须将 file_path
括在大括号中以将其标记为 Python 表达式。尝试将此作为脚本的最后一行:
!cat {file_path} | sed -e '1,/BEGIN/d'>temp.txt
依我拙见,您忘记在 file_path 变量中添加“/”:
import os
for fn in os.listdir('./dir'):
if fn.endswith('.txt'):
file_path='./dir/'+fn
print file_path
顺便说一句,在这种情况下你可以使用 bash:
for i in `ls ./dir`; do if [[ $i == d*.txt ]]; then cat ./dir/$i | sed -e '1,/BEGIN/d'>temp.txt ; fi; done