将md文档转移到服务器文件夹中

相关路径

  • shell中的路径处理
  • linux怎么将一个文件移动到另一个目录下
  • 写入文件,追加内容,修改内容;shell,sed
  • Linux 文件与目录管理
  • python逐行读取文件内容的三种方法
  • Python中fileinput模块使用
  • 文件行python 简单文件操作 修改文件指定行
  • python之替换文件内容和修改某行内容
  • 命令行运行Python脚本时传入参数的三种方式

python逐行读取文件内容的三种方法

方法一:
f = open("foo.txt")             # 返回一个文件对象 
line = f.readline()             # 调用文件的 readline()方法 
while line:  
    print line,                 # 后面跟 ',' 将忽略换行符 
    # print(line, end = '')   # 在 Python 3中使用 
    line = f.readline()  

f.close()  
方法二:
for line in open("foo.txt"):  
    print line,  
方法三:
f = open("c:\\1.txt","r")  
lines = f.readlines()#读取全部内容 
for line in lines  
    print line  
运行python脚本传入参数
import sys
gpus = sys.argv[1]
#gpus = [int(gpus.split(','))]
batch_size = sys.argv[2]
print gpus
print batch_size

python文件操作

使用python进行简略的文件读写
#!/usr/bin/python
import sys
import re
if __name__=="__main__":
    f=file("hi.txt","w+")
    li=["hello\n","hi\n"]
    f.writelines(li)
    f.close()

“W+”模式:如果没有hi.txt则创建文件写入;如果存在,则清空hi.txt内容,从新写入。

修改文件指定行
#!/usr/bin/python

import sys,os

f=open('hi.txt','r+')
flist=f.readlines()
flist[4]='hi\n'
f=open('hi.txt','w+')
f.writelines(flist)

将hi.txt第五行内容修改成hi

使用fileinput获取所有的行
for line in fileinput.input(fileName):
    if "resources/" in line:
        print fileinput.filelineno()
        print line

全部代码

shell内容

#!/bin/bash 
# ******** 注意:文章的文件名不能有空格和/,否则可能出错******


# 1. 进入文稿中的resources文件夹中,并将里边所有的文件转移
# 获取文稿中保存的图片的文件夹路径
documentsResourcesPath=/Users/zetafin/Documents/markdown/Notes/resources

# 获取图片转移目到的文件夹的目的地的路径
imgResourcesPath=/Users/zetafin/anchoriteFili/styles/images/resources

# 获取Notes的路径名
NotesPath=/Users/zetafin/Documents/markdown/Notes

# 获取markDown的路径名
markdownPath=/Users/zetafin/Documents/markdown

# 获取_posts的路径
postsPath=/Users/zetafin/anchoriteFili/_posts

# MDFileManager.py的路径
MDFileManagerPath=/Users/zetafin/Desktop/MDFileManager.py

echo $documentsResourcesPath

echo $imgResourcesPath

echo $documentsResourcesPath/* .

# 进入服务器文件夹中的图片文件夹
cd $imgResourcesPath
# 后边的空格+.一定要添加,不然就命令失败,将文稿中的文件转移到图片文件夹中
mv -f ${documentsResourcesPath}/* .
# 将图片文件夹移到上级文件夹中
mv -f $documentsResourcesPath $markdownPath


# 处理所有的md文件,处理里边所有的图片文件链接
for file in $NotesPath/*
do
    echo $file
    python $MDFileManagerPath $file
done

# 进入到存储文章的文档中
cd $postsPath

# 将文稿中的文章转移到服务器的文档中
mv -f ${NotesPath}/* .

python中代码

#!/usr/bin/python
#-*- coding: utf-8 -*-
#encoding=utf-8

import re,os,sys
import fileinput

# 处理图片的文件链接
def manageImageCode(line):
    line = line.replace("resources/", "https://anchoritefiligod.gitee.io/blogs/styles/images/resources/")
    searchObj = re.search(r'(.*?) =', line, re.M|re.I|re.S)

    if searchObj:
        # print searchObj.group(1) + ')'
        return searchObj.group(1) + ')\n'
    else:
        # print '正则没有匹配到'
        return 'no matcn'


fileName = sys.argv[1]

f = open(fileName,'r+')
flist = f.readlines()

for line in fileinput.input(fileName):
    # print line,
    if "resources/" in line:
        print "行号", fileinput.filelineno()
        if manageImageCode(line) == "no matcn":
            print '没有匹配到'
        else:
            # print "匹配到了"
            flist[fileinput.filelineno()-1] = manageImageCode(line)


if flist == []:
    print "文件被清空"

f = open(fileName,'w+')
f.writelines(flist)
f.close()

你可能感兴趣的:(shell)